从Firebase实时数据库中检索2个孩子,其中之一来自查询

时间:2019-04-23 15:02:25

标签: android firebase firebase-realtime-database

我构建了一个带有Fragment以便通知的应用程序,如Facebook。所以我在其行中有RecycleView:-

  1. 发件人照片

  2. 发件人姓名

  3. 通知类型:-正常或消息请求

因此,我试图通过查询“我成功做到了这一点” 从发送通知的用户中检索姓名和照片,并正常检索类型“我的问题从这里开始” < / strong> 这是我在此图像a busy cat

中的数据库

我尝试使用此名称和照片查询运行此代码,但是它仅检索数据库中最后一个“类型” ,这是代码:--->

databaseReference = FirebaseDatabase.getInstance().getReference("user").child(firebaseUser.getUid()).
child("notifyinapp");
databaseReferenceuser = 
FirebaseDatabase.getInstance().getReference("user");

databaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot,String s){
notifModel2 = dataSnapshot.getValue(NotifModel2.class);
databaseReferenceuser.orderByKey().equalTo(dataSnapshot.child("from").getValue(String.class)).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
name = snapshot.child("name").getValue(String.class);
photo = snapshot.child("photo").getValue(String.class);
notifModel = new NotifModel(name, photo, notifModel2.getType());
data.add(notifModel);

实际结果

“类型”始终是“类型”的最后一个子元素, 始终取决于我上传的图片“邮件请求”

期望的结果

RecycleView的第一行应为其“类型”为“正常请求” 第二行,其“类型”应为“消息请求”

0 个答案:

没有答案