我正在开发一个Android应用程序,现在我被困在从特定节点检索数据,就像我想从每个节点只检索一个值 . 数据库结构如下所示 .
如何检索Firebase数据库创建的第二个唯一ID?
首先创建一个POJO类来获取所需的值,它应该与在Firebase中使用它们的方式相同 .
public class AppointmentsPojo { private String appointmentStuts; public AppointmentsPojo(){ } public String getAppointmentStuts() { return appointmentStuts; } public void setAppointmentStuts(String appointmentStuts) { this.appointmentStuts = appointmentStuts; } }
然后只需循环 Appointments 以获取每个 appointmentStuts
Appointments
appointmentStuts
mDatabase.child("Appointments").addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { //Looping inside Appointments to get each appointmentsStuts for(DataSnapshot snapshot: dataSnapshot.getChildren()){ AppointmentsPojo ap = snapshot.getValue(AppointmentsPojo.class); //Getting each appointmentStuts String appointmentStuts = ap.getAppointmentStuts(); //To get each father of those appointments String key = snapshot.getKey(); Log.e("Data: " , "" + appointmentStuts ); } } @Override public void onCancelled(DatabaseError databaseError) { System.out.println("The read failed: " + databaseError.getCode()); } });
mDatabase的位置
DatabaseReference mDatabase; mDatabase = FirebaseDatabase.getInstance().getReference();
要仅从第一个对象获取 appointmentStuts 的值,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); Query query = rootRef.child("Appointments").child(PostKey).limitToFirst(1); ValueEventListener valueEventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for(DataSnapshot ds : dataSnapshot.getChildren()) { String appointmentStuts = ds.child("appointmentStuts").getValue(String.class); Log.d(TAG, appointmentStuts); } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { Log.d(TAG, databaseError.getMessage()); } }; query.addListenerForSingleValueEvent(valueEventListener);
2 回答
首先创建一个POJO类来获取所需的值,它应该与在Firebase中使用它们的方式相同 .
然后只需循环
Appointments
以获取每个appointmentStuts
mDatabase的位置
要仅从第一个对象获取
appointmentStuts
的值,请使用以下代码: