[英]How to retrive this data from firebase?
如何从所有用户 ID 未知的医院中检索所有医院名称。
有两种主要方法可以导航您在onDataChange
中获得的DataSnapshot
。
snapshot.child("hospitalData")
从其父节点获取该子快照。snapshot.getChildren()
来访问每个子快照。通过结合这些,您可以导航任何结构。
因此,您需要使用getChildren()
遍历用户,然后访问每个用户的child("hospitalData")
,并使用child("hospitalName").getValue(String.class)
.
你必须修改你的结构。 创建一个新的节点名称医院并将userId放入每个医院object即
- medicine
..........
- medicineData
..........
- Patients
..........
- Pharmacies
..........
- hospitals
..........
这个怎么样。
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("medicine/Hospitals");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
hospitalArrayList.clear();
for (DataSnapshot item : dataSnapshot.getChildren()) {
Hospital hospital = item.getValue(Hospital.class);
hospitalArrayList.add(hospital);
System.out.println(hospital);
}
dataRetrieved();
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
private void dataRetrieved() {
adapter.notifyDataSetChanged();
}
Hospital.java 简单示例
public class Hospital {
public HospitalData hospitalData;
public Hospital(HospitalData hospitalData) { }
public Hospital() { }
public static class HospitalData {
public String hospitalName;
public String hospitalAddress;
public HospitalData(String hospitalName, String hospitalAddress) { }
public HospitalData() { }
}
}
您可以像这样在适配器中使用它。
String name = hospitalArrayList.get(position).hospitalData.hospitalName;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.