我有一个包含Firebase运行时数据库所有键的DataSnapshot。这是我的日志:-
E / MYDATA:DataSnapshot {键=收入,值= {-LgaZl_ojnqmvgpPe48D = {date = 2019-06-05,createdAt = 2019-06-05 13:08:22,金额= 333.00,标题= jjhj,从= yyyyy,时间= 13:08,类型= ICICI银行,更新时间为= 2019-06-05 13:08:22}}}
E / MYDATA:DataSnapshot {键= createdAt,值= 2019-06-05 11:06:18}
E / MYDATA:DataSnapshot {键=电子邮件,值= abc@gmail.com}
在这里,我的日志是= MYDATA,我尝试在Recyclerview中呈现 key = Income 数据
这是我的代码:
String id = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(id);
ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
Log.e("MYDATA", "" + dataSnapshot);
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
这是我的数据库结构:-
数据库图片
答案 0 :(得分:2)
如果要获取“扩展”的记录,请将ref
更改为
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users").child(id).child("Expanse");
更改后,将ValueEventListener
或ChildEventListener
添加到ref
。
您已使用ChildEventListener
,因此在onChildAdded
的{{1}}中,您可以像这样从Firebase获取数据,
ChildEventListener
上面的代码将出现在Expanse expanse = dataSnapshot.getValue(Expanse.class);
list.add(expanse);
的{{1}}中,其中onChildAdded
是您的POJO类,其中包含用于数量,标题,日期等的获取器和设置器。
然后,您必须在ChildEventListener
中添加这个新获得的对象Expanse
,然后通知expanse
数据已更改。