Firebase - 获取 children 的 children
Firebase - get childrens of children
我正在寻找一个很好的解决方案来从 child 的 child 人中获取数据。
正如您在我的“用户”数据库中看到的那样,我有带有用户 uid 的节点,并且在该节点中我存储了用户数据,例如头像、用户名等,但我无法从“关注者”示例中获取数据
数据库结构:
- 用户(节点)
- 用户 uid(节点)
- 用户名(字符串)
- 头像(字符串)
- 名字(字符串)
- 姓氏(字符串)
- followers (NODE) <- 如何在不创建新的 OnChildListener 的情况下从此节点获取数据
- 专辑(节点)<- 与“关注者”相同
我尝试过的方式
FirebaseDatabase database;
DatabaseReference userReference;
DatabaseReference userFollowersReference;
String loggedUserUid = "uid"; // Logged User UID
database = FirebaseDatabase.getInstance("url");
userReference = database.getReference("users").child(loggedUserUid);
userFollowersReference = database.getReference("users").child(loggedUserUid).child("followers");
userReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
String username = snapshot.child("username").getValue(String.class);
String avatar = snapshot.child("avatar").getValue(String.class);
}
});
userFollowersReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
List<String> followers = new ArrayList<>();
followers.add(snapshot.child("followerUid").getValue(String.class));
}
});
那么 - 是否有一种更简单、更好看的方法来避免代码混乱并知道何时加载所有需要的数据?
快照包含您附加侦听器的节点中的所有内容。您只需要深入研究它即可找到所有数据。
snapshot
.child("username")
.child("followers")
.child("followerUid")
.getValue(String.class);
我正在寻找一个很好的解决方案来从 child 的 child 人中获取数据。
正如您在我的“用户”数据库中看到的那样,我有带有用户 uid 的节点,并且在该节点中我存储了用户数据,例如头像、用户名等,但我无法从“关注者”示例中获取数据
数据库结构:
- 用户(节点)
- 用户 uid(节点)
- 用户名(字符串)
- 头像(字符串)
- 名字(字符串)
- 姓氏(字符串)
- followers (NODE) <- 如何在不创建新的 OnChildListener 的情况下从此节点获取数据
- 专辑(节点)<- 与“关注者”相同
- 用户 uid(节点)
我尝试过的方式
FirebaseDatabase database;
DatabaseReference userReference;
DatabaseReference userFollowersReference;
String loggedUserUid = "uid"; // Logged User UID
database = FirebaseDatabase.getInstance("url");
userReference = database.getReference("users").child(loggedUserUid);
userFollowersReference = database.getReference("users").child(loggedUserUid).child("followers");
userReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
String username = snapshot.child("username").getValue(String.class);
String avatar = snapshot.child("avatar").getValue(String.class);
}
});
userFollowersReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
List<String> followers = new ArrayList<>();
followers.add(snapshot.child("followerUid").getValue(String.class));
}
});
那么 - 是否有一种更简单、更好看的方法来避免代码混乱并知道何时加载所有需要的数据?
快照包含您附加侦听器的节点中的所有内容。您只需要深入研究它即可找到所有数据。
snapshot
.child("username")
.child("followers")
.child("followerUid")
.getValue(String.class);