我有一个firebase数据库,其中包含以下内容:
以下是我的数据库示例:
我想要的是检索数据库中每个事件的属性,无论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是一个自定义类,包含事件的属性,getter / setter和构造函数。 Ref是数据库引用。 但是返回的事件对象是空的。
我正在使用android。
答案 0 :(得分:0)
您仍有一个级别可以达到单个活动:
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,以便可以反序列化。
答案 1 :(得分:0)
看起来你是以错误的方式反击,试试这个:
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 中。它会起作用。