Android 如何使用密钥从firebase检索数据?
对于上面的json,它显示了不同类型的子对象,我必须只检索键“sick”的值,无论它是在直接子对象中还是在子对象中Android 如何使用密钥从firebase检索数据?,android,firebase,Android,Firebase,对于上面的json,它显示了不同类型的子对象,我必须只检索键“sick”的值,无论它是在直接子对象中还是在子对象中 "sicknessEntries" : [ null, { "daysSick" : 1, "sickness" : "Flu", "type" : "Viral", "userId" : "K9lPzGCb1AUdNqNywurwNueunv42" }, -K9lP-zGCb1AUdNqNywurwN { "daysSick" : 2,
"sicknessEntries" : [ null, {
"daysSick" : 1,
"sickness" : "Flu",
"type" : "Viral",
"userId" : "K9lPzGCb1AUdNqNywurwNueunv42"
},
-K9lP-zGCb1AUdNqNywurwN {
"daysSick" : 2,
"sickness" : "Pneumonia",
"type" : "Bacterial",
"userId" : "abcd"
},
-NywurwNueunv42 {
"daysSick" : 1,
"severity" : "Medium",
"sickness" : "Shingles",
"type" : "Viral",
"userId" : "user123"
},
{
"daysSick" : 1,
"severity" : "Medium",
"sickness" : "Flu",
"type" : "Viral",
"userId" : "K9lPzGCb1AUdNqNywurwNueunv42"
} ]
如果我使用上面的代码,它只能得到键“sick”的主要子值(即,它返回两个Flu,Flu仅返回Flu而不是其他)。但我也必须得到所有具有相同键的子级值。如何检索它?final FirebaseDatabase=FirebaseDatabase.getInstance();
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot friendSnapshot: dataSnapshot.getChildren()) {
System.out.println(friendSnapshot.child("sickness").getValue());
}
}
public void onCancelled(DatabaseError databaseError) {
}
});
DatabaseReference refuers=database.getReference(“/childname”);
拒绝者。addChildEventListener(新的ChildEventListener(){
@凌驾
公共void onChildAdded(DataSnapshot DataSnapshot,字符串s){
}
@凌驾
公共void onChildChanged(DataSnapshot DataSnapshot,字符串s){
试一试{
Iterable children=dataSnapshot.child(“疾病中心”).getChildren();
List sickList=新的ArrayList();
for(DataSnapshot子对象:子对象){
SickModel SickModel=child.getValue(SickModel.class);
病床列表。添加(病床模型);
}
请尝试上面的代码片段,用于检索模型的数组。
如果sickmodel有daysSick、sick、type、userIdk,那么如何从上面检索数据?如果不是json?我可能知道什么?我只给出了json的一部分
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference refUsers = database.getReference("/childname");
refUsers.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
try {
Iterable<DataSnapshot> children = dataSnapshot.child("sicknessEntries").getChildren();
List<SickModel> sickList = new ArrayList<>();
for (DataSnapshot child : children) {
SickModel sickmodel = child.getValue(SickModel.class);
sickList.add(sickmodel);
}