gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:30:15 24 4
gpt4 key购买 nike

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

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

}
});

最佳答案

对于患者 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) {

}
});

关于java - Firebase - (具有多个子节点用户唯一键的 DataSnapshot ) - 空对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57710838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com