为了账号安全,请及时绑定邮箱和手机立即绑定

Firebase - (具有多个子节点用户唯一键的 DataSnapshot ) - 空对象引用

Firebase - (具有多个子节点用户唯一键的 DataSnapshot ) - 空对象引用

FFIVE 2023-06-28 15:55:10
我有与每个患者唯一密钥相对应的药物数量。我在检索患者的所有医学数据时遇到麻烦这是我的数据库结构。  {      "Medicine" : {        "-LnRyr-3szcVYVtr_d4m" : {          "Med1" : {            "dosage" : "1+1+1",            "medname" : "Panadol",            "time" : "After Every Meal"          },          "Med2" : {            "Mmedname" : "Raisik",            "med2dosage" : "1+1+1",            "med2time" : "after every meal 1 week"          }        }      }    }代码 databaseReference = FirebaseDatabase.getInstance().getReference("Medidine");        databaseReference.addValueEventListener(new ValueEventListener() {            @Override            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                for (DataSnapshot requestSnapshot: dataSnapshot.getChildren()) {                    DataSnapshot ds = requestSnapshot.child("Med1");                    for (DataSnapshot medicinesnapshot: ds.getChildren()) {                        String MedicineName = medicinesnapshot.child("medname").getValue(String.class);                        String MedDosage = medicinesnapshot.child("dosage").getValue(String.class);                        String medtime = medicinesnapshot.child("time").getValue(String.class);                        marray.add(MedicineName+MedDosage+medtime);                    }                    }            }            @Override            public void onCancelled(@NonNull DatabaseError databaseError) {            }        });
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

对于患者ID=-LnRyr-3szcVYVtr_d4m的患者;


然后你就可以像这样获得与该患者相关的所有药物


String patientId="-LnRyr-3szcVYVtr_d4m";


FirebaseDatabase.getInstance().getReference().child("Medicine").child(patientId).addListenerForSingleValueEvent(new ValueEventListener() {

            @Override

            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                if (dataSnapshot.exists()) {


                    for (DataSnapshot snapshot : dataSnapshot.getChildren()) {

                        MedicineData medicineData = snapshot.getValue(MedicineData.class);




                    }



                }

            }


            @Override

            public void onCancelled(@NonNull DatabaseError databaseError) {


            }

        });


查看完整回答
反对 回复 2023-06-28
  • 1 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信