Android 如何使用密钥从firebase检索数据?

Android 如何使用密钥从firebase检索数据?,android,firebase,Android,Firebase,对于上面的json,它显示了不同类型的子对象,我必须只检索键“sick”的值,无论它是在直接子对象中还是在子对象中 "sicknessEntries" : [ null, { "daysSick" : 1, "sickness" : "Flu", "type" : "Viral", "userId" : "K9lPzGCb1AUdNqNywurwNueunv42" }, -K9lP-zGCb1AUdNqNywurwN { "daysSick" : 2,

对于上面的json,它显示了不同类型的子对象,我必须只检索键“sick”的值,无论它是在直接子对象中还是在子对象中

"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、userId

k,那么如何从上面检索数据?如果不是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);
                        }