我用来检索数据的代码:
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/