繁体   English   中英

Firebase数据库参考以检索子级

[英]Firebase Database Reference To Retrieve Children

我有一个包含以下内容的firebase数据库:

  1. 事件
  2. 创作者ID(Firebaseauth ID)
  3. 活动名称
  4. 事件属性,例如名称位置日期时间...

这是我的数据库示例:

数据库的屏幕截图

我想要的是无论UID如何都检索数据库中每个事件的属性,但是由于许多其他原因,我无法摆脱UID。

我使用以下代码进行检索:

ref = database.getReference("Event/");
        ref.addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                Event event = new Event();
                event = dataSnapshot.getValue(Event.class);
                events.add(event);
                myRecyclerView.setAdapter(adapter);
            }

其中Event是一个自定义类,其中包含事件的属性,获取器/设置器和构造函数。 Ref是数据库参考。 但是返回的事件对象为空。

我正在使用android。

您仍然只有一个级别可以达到一个事件:

public void onChildAdded(DataSnapshot dataSnapshot, String s) {
             for(DataSnapshot snapshot: dataSnapshot.getChildren()){
                Event event = new Event();
                event = snapshot.getValue(Event.class);
                events.add(event);
                myRecyclerView.setAdapter(adapter);
          }
            }

另外,请确保您的Event类具有公共getter和setter,以便可以反序列化。

看来您以错误的方式检索,请尝试以下操作:

String EVENT_ID = "YOUR EVENT ID HERE"
ref = database.getReference("Event")
      .child(EVENT_ID)
      .addChildEventListener(new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                Event event = new Event();
                event = dataSnapshot.getValue(Event.class);
                events.add(event);
                myRecyclerView.setAdapter(adapter);
            }

OBS:将事件ID放入EVENT_ID中 它会工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM