【发布时间】:2020-12-19 02:30:24
【问题描述】:
因此,正如标题所述,我希望先从 Firebase 数据库中检索数据,然后再在 FirebaseRecyclerOptions 中构造要在 FirebaseRecyclerAdapter 中使用的对象。基本上,我想做的是在我正在开发的应用程序中创建一个朋友列表。这是数据库的样子:
Friends:
uid1:
id: friendID
uid2:
id: friendID
Users:
uid1:
name: name
status: status
image: profileImageUrl
uid2:
name: name
status: status
image: profileImageUrl
我的代码目前看起来像这样:
FirebaseRecyclerOptions<Users> options = new FirebaseRecyclerOptions.Builder<Users>().setQuery(usersDatabase, new SnapshotParser<Users>() {
@NonNull
@Override
public Users parseSnapshot(@NonNull DataSnapshot snapshot) {
System.out.println(snapshot);
rootRef.child("Users").child(snapshot.getValue().toString()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
System.out.println(dataSnapshot);
name = dataSnapshot.child("name").getValue().toString();
status = dataSnapshot.child("status").getValue().toString();
image = dataSnapshot.child("image").getValue().toString();
return;
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
System.out.println(snapshot);
return new Users(name, image, status);
}
}).build();
问题是我添加的 ValueEventListener 直到返回新的 Users 实例后才会触发。我应该将 ValueEventListener 添加到与 FirebaseRecyclerOptions 查询相同的 DatabaseReference (userDatabase) 中吗?
【问题讨论】:
标签: java android firebase firebase-realtime-database firebaseui