Firebase & Listview


#1

I have made a signup procedure using firebase and Firebase Authentication Extension of @mirxtrem_apps.
I have stored every user data on different tags.
Now I want to show every user data as a element in a Listview.Like one tag for one user,One element for one user. (Like this picture)


How can I do this? I tried many times but failed.

Note: I want also when a user edit their data , the updated data will appear as a replacement of their old data in the listview.


#2

I think if you restructure your database, you can use looping.

Like User/[index]/Data => User/1/"Robert…

And you have something like User/TotalUser
To save the number of users registered.

Then, you can loop from 1 till TotalUser to get data. But, it will be a bothersome process and if your users are lots, it will take a long time to finish. I have never tried it anyway, so i dont know if it will work.

For your need, my recommendation is to use RDBMS database. Like MySQL or Fusion Table, so you can easily use query to select all customers, or for example any male customers with age between xx and xx.


#3

I will do a tutorial when I go home. Stand by :wink:


#4

i have a list with 4000 items in it.when screen initialize i get value from firebase and set listview elements.it takes 10 seconds.in 10 seconds device freeze.
i tried with fusion it was working well but later can not get data as fast as first days.
so when i check other apps im litte bit suprised how they can load everything so fast?


#5

Ok. I will try with Fusion Table. But I love to work with Firebase DB


#6

Easy steps:

  1. Add a new “TinyDB”
  2. In “Screen.Initialize”, [change your DB name to a unique name] + Clear All.
  3. In Firebase.DataChanged, [IF tag is in my list Then replace the value Else add the new value.

I use this way and it works.


#7

I am eagerly waiting :star_struck:


#8

Thanks :heart_eyes:

In this way , can user able to edit their data and their edited data set on the listview?


#9

oh got it. sorry for the last question.
I am trying


#10

so sad to know :neutral_face:


#11

Really? Well, i guess it is entitled to limitations. Fusion Table is after all a free service, just like free Firebase account.

The alternative that is proven is MySQL. It can works with lots of data, works fast even if you have millions rows of data, and tens of thousands users. I think a lot of App Inventor developers already use it.

For tutorials, you can look for Taifun’s tutorial on his site. For video, i recommend Derek Banas video on YouTube. Just search on Google : App Inventor MySQL.

We can even try with free web hosting like 000webhost.


#12

I have more than 4000 items with no freeze.

Are you using this block?
Capture


#13

@Hassan, that is good to know.

Why you and @edd got different result? What is the difference between your methods? Data structure? Blocks? List complexity?


#14

can you show me blocks? thanks.
i set listview elements from text,
from csv row text
from fusion
from firebase
the result was same.
i need set listview elements faster


#15

yup i must learn mysql too
.i will check them.thanks


#16

@Hassan Thanks, its working. but why shows brackets in listview?


#17

@edd My block purpose might be different than yours. You may show me your block and I’ll try to help you.

@Rakib205 Show me your store block please.


#18


#19

Adjust your details procedure to this:

Capture


#20

It works but I want to set last user as the first element of listview.