首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从特定节点firebase数据库中检索数据

从特定节点firebase数据库中检索数据
EN

Stack Overflow用户
提问于 2018-09-03 00:59:19
回答 2查看 1.2K关注 0票数 1

我正在开发一个android应用程序,现在我陷入了从特定节点检索数据的困境,因为我只想从每个节点检索一个值。数据库结构如下所示。

如何检索由Firebase数据库创建的第二个唯一id?

EN

回答 2

Stack Overflow用户

发布于 2018-09-03 01:56:28

首先创建一个POJO类来获取你想要的值,它的编写方式应该与你在Firebase中的编写方式相同。

代码语言:javascript
复制
public class AppointmentsPojo {

    private String appointmentStuts;

    public AppointmentsPojo(){

    }


    public String getAppointmentStuts() {
        return appointmentStuts;
    }

    public void setAppointmentStuts(String appointmentStuts) {
        this.appointmentStuts = appointmentStuts;
    }

}

然后,只需在Appointments中循环以获取每个appointmentStuts

代码语言:javascript
复制
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在哪里

代码语言:javascript
复制
DatabaseReference mDatabase;

mDatabase = FirebaseDatabase.getInstance().getReference();
票数 1
EN

Stack Overflow用户

发布于 2018-09-03 19:45:26

要仅从第一个对象获取appointmentStuts的值,请使用以下代码:

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52139193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档