火力地堡得到所有关键
问题描述:
大家好我要赶在我火力数据库中的所有键:火力地堡得到所有关键
Users-
26dfg678-
Name: jack
Job: Farmer
43jkhjh4-
Name: bill
Job: ICT
我想赶上ID:26dfg678
和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) {
}
});
如果我这样做,只需要最后的,但我希望所有..
答
要做到这一点,你需要通过使用ValueEventListener你的火力地堡快照阅读(addListenerForSingleValueEvent)。
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孩子,节省其关键在每个迭代的数组。
现在感谢它的工作 – user7385152