Firebase获取父节点中的所有用户

时间:2017-04-22 14:55:22

标签: java android firebase firebase-realtime-database

我正在尝试构建一个简单的朋友列表,用户可以在其中创建一些朋友组,每个朋友组可以拥有很多朋友,在朋友组中,用户可以通过联系人添加新朋友(插入电话号码)一个editText)用户被添加到列表中(我使用recycleViews),每次我在firebase中的friendList组中插入一个新用户时,它都会添加到具有特定名称的组内(名称不能为组重复) )对于该用户,使用userID和value = true,这是我的firebase的表示: image'}'}指的是真的

我需要的是显示特定群组的所有用户,只要我只保护群组中的ID,我需要从该ID获取整个用户,但不仅仅是我需要获得的1个用户他们都是。

所以我这样做了:

 private void prepareFriendList() {
        myRef.child(id).child("FriendLists").child(group).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                    currentFriends.add(snapshot.getKey());
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

        myRef.child(id).child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot : dataSnapshot.getChildren()) {

                    User user = snapshot.getValue(User.class);

                    for(String item: currentFriends){
                        if (snapshot.getKey().equals(item)) {
                            usersList.add(user);
                        }
                    }
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

        mAdapter.notifyDataSetChanged();
    }

0 个答案:

没有答案