Firebase - 获取 children 的 children

Firebase - get childrens of children

我正在寻找一个很好的解决方案来从 child 的 child 人中获取数据。

正如您在我的“用户”数据库中看到的那样,我有带有用户 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);