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

我有与每个患者唯一密钥相对应的药物数量。我在检索患者的所有医学数据时遇到麻烦这是我的数据库结构。


  {

      "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) {


            }

        });


FFIVE
浏览 121回答 1
1回答

元芳怎么了

对于患者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) {            }        });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java