Pav*_*van 0 android json firebase firebase-realtime-database
这是我在 Firebase 数据库中的 JSON 数据结构:
familylist
|- 0
|--children
| |-- 0:"AAA"
| |-- 1:"BBB"
|-- code: "2222"
|-- family: "SWE"
|-- fatherName: "ABC"
|-- motherName: "XYZ"
|- 1
|--children
| |-- 0:"XXX"
| |-- 1:"YYY"
|-- code: "3333"
|-- family: "ABC"
|-- fatherName: "ERT"
|-- motherName: "XTS"
Run Code Online (Sandbox Code Playgroud)
我能够提取除childrenJSON 树之外的所有字段。谁能建议我如何从中检索数据children?
这是我用于从 firebase 数据库中检索除子项之外的所有字段的代码。为了检索这些children值,可以对这段代码做些什么?我无法弄清楚。
familyListReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds: dataSnapshot.getChildren()) {
String key = (String) ds.getKey();
Log.d(TAG, "Key" + key);
DatabaseReference keyReference = FirebaseDatabase.getInstance().getReference().child("familylist").child(key);
Log.d(TAG, "Key reference: " + keyReference);
keyReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String code = dataSnapshot.child("code").getValue(String.class);
String family = dataSnapshot.child("family").getValue(String.class);
String father = dataSnapshot.child("fatherName").getValue(String.class);
String mother = dataSnapshot.child("motherName").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG, "Read failed");
}
}); // [End of keyReference]
} // END of for Loop
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG, "Read failed");
}
}); // [End of familyListDatabaseReference]
Run Code Online (Sandbox Code Playgroud)
由于children是一个列表,您可能正在寻找:
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.child("children").getChildren()) {
System.out.println(childSnapshot.getValue(String.class));
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,Firebase 文档建议不要将数组用于此类列表,例如在此博客文章中。相反,它建议使用push()来填充列表。
| 归档时间: |
|
| 查看次数: |
6309 次 |
| 最近记录: |