android - 如何检索 Firebase (android) 中的所有用户数据?

标签 android firebase firebase-realtime-database

我用来检索数据的代码:

Firebase ref = new Firebase(Config.FIREBASE_URL);
            ref.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot snapshot) {
                    for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                        //Getting the data from snapshot
                        Person person = postSnapshot.getValue(Person.class);


                        //Adding it to a string
                        String string = "Name: "+person.getName()+"\nAddress: "+person.getAddress()+"\nLatLong: "+person.getflat()+","+person.getflng()+"\nReamaining Distance: "+person.getfdist();

                        //Displaying it on textview
                        textViewPersons.setText(string);
                    }
                }

                @Override
                public void onCancelled(FirebaseError firebaseError) {
                    System.out.println("The read failed: " + firebaseError.getMessage());
                }
            });

这就是我的 firebase 数据库的样子。问题是使用上面的代码我只能检索第二个用户(Simranjit Singh)的数据。我想检索这两个用户。

6MpsYKoVMNfJMvUdE9y2oPZSnxb2addclose
   address: 
    "tintinsharma0001@gmail.com"
   fdist: 
    "31.95893"
   flat: 
    "30.69074016"
   flng: 
    "76.74376851"
   name: 
    "Tintin Sharma"
fxrutNP5uLfoPGIJtTuXAYam5dP
   address: 
    "samsinghsimran@gmail.com"
   fdist: 
    "31.95893"
   flat: 
    "30.69074016"
   flng: 
    "76.74376851"
   name: 
    "Simranjit Singh"

最佳答案

问题是您正在获取每个用户,并将其分配给相同的 TextView ,这会覆盖最后一个人。所以不管你有多少,你总是会得到最后一个用户。您应该将用户放入 ArrayList 或类似的数据结构中,并使用它来填充 ListView :

Firebase ref = new Firebase(Config.FIREBASE_URL);
            ref.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot snapshot) {
                    ArrayList<Person> peopleList = new ArrayList<Person>():
                    for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                        //Getting the data from snapshot
                        Person person = postSnapshot.getValue(Person.class);

                        //add person to your list
                        peopleList.add(person);
                        //create a list view, and add the apapter, passing in your list

                    }
                   yourListView.setAdapter(personList);
                }

                @Override
                public void onCancelled(FirebaseError firebaseError) {
                    System.out.println("The read failed: " + firebaseError.getMessage());
                }
            });

关于android - 如何检索 Firebase (android) 中的所有用户数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42932404/

相关文章:

Android - 尽管我仍然连接到 WiFi,但我如何检测到我的应用已失去互联网连接

java - 使用 addlistnerForSingleValueEvent 从 firebase 检索数据时出错

ios - Firebase - 如何获取 observeEventType = Value 中的键值

java - Android Studio 和 openimaj

android - 为 QA 工作备份 Android 模拟器

安卓设备信息

android - 如何只显示一次 Firebase 数据?

javascript - 当按钮点击错误时发送通知

ios - 无法使用来自 Firebase 数据库的数据填充数组

firebase - 更改 firebase 数据模型(同时生产多个应用程序版本)