我希望每个人都能抓住我的firebase数据库上的所有密钥:
26dfg678
我想抓住id:43jkhjh4
和 final DatabaseReference database_nomi = firebaseDatabase.getReference().child("Users");
database_nomi.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
//here
**name[0] = dataSnapshot.getKey();
Provee.setText(name[0]);**
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
并将它们放入数组中。这是我的代码:
print
如果我这样做,它只需要最后一个,但我想要所有..
答案 0 :(得分:3)
要执行此操作,您需要使用 ValueEventListener (以及 addListenerForSingleValueEvent )来阅读Firebase快照。
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
int i = 0;
for(DataSnapshot d : dataSnapshot.getChildren()) {
name[i] = d.getKey();
i++;
}
}
}//onDataChange
@Override
public void onCancelled(DatabaseError error) {
}//onCancelled
});
此代码使用 foreach 来读取所有dataSnapshot子项,并在每次迭代时将其键保存在数组中。