如果密钥仅返回true,则如何从firebase数据库中检索数据



我想问一下如何检索只有user2加入android的组?

"users": {
    "user1": {
        "name": "User 1"
    },
    "user2": {
        "name": "User 2"
    }
}
"groups": {
    "groupA": {
        "name": "A Group"
    },
    "groupB": {
        "name": "B Group"
    }
}
"userGroup": {
    "user1": {
        "groupA": true,
        "groupB": true
    },
    "user2": {
        "groupB": true
    }
}

我已经尝试了 DatabaseReference userGroupRef = rootRef.child("userGroup/user2")但无法显示这些组的名称

但是如果我使用 DatabaseReference groupsRef = rootRef.child("groups")user2未加入的组也显示。

firebase是否具有 groupsID in userGroup/user2的查询?

edit_1

我使用FirebaseRecyclerAdapter显示rootRef.child("groups")的列表,即使User2未加入,也显示了所有组。

groupsRef = rootRef.child("groups");
FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Group, GroupHolder>(Group.class, R.layout.group_item_layout, GroupHolder.class, groupsRef) {
    @Override
    protected void populateViewHolder(GroupHolder viewHolder, Group group, int position) {
        viewHolder.setGroupName(group.getName());
    }
};
groupRecyclerView.setAdapter(adapter);

此用例由FirebaseIndexRecyclerAdapter专门解决。您将通过两个参考/查询传递:一个用于所谓的索引(带有您要显示的true值的键),一个用于每个匹配键要加载的实际对象。

在您的情况下:

groupsRef = rootRef.child("groups");
indexRef = rootRef.child("userGroup/user2");
FirebaseIndexRecyclerAdapter adapter = new FirebaseIndexRecyclerAdapter <Group, GroupHolder>
  (Group.class, R.layout.group_item_layout, GroupHolder.class, indexRef, groupsRef) {
    @Override
    protected void populateViewHolder(GroupHolder viewHolder, Group group, int position) {
        viewHolder.setGroupName(group.getName());
    }
};

相关内容

  • 没有找到相关文章

最新更新