Tir*_*iru 3 android firebase firebase-realtime-database
大家好,我想捕获我的 firebase 数据库上的所有键:
Users-
26dfg678-
Name: jack
Job: Farmer
43jkhjh4-
Name: bill
Job: ICT
Run Code Online (Sandbox Code Playgroud)
我想捕获 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) {
}
});
Run Code Online (Sandbox Code Playgroud)
如果我这样做,只需要最后一个,但我想要所有..
为此,您需要使用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
});
Run Code Online (Sandbox Code Playgroud)
此代码使用foreach读取所有 dataSnapshot 子级,并在每次迭代时将其键保存在数组中。
| 归档时间: |
|
| 查看次数: |
5001 次 |
| 最近记录: |