如何获取组类型数据库中其他用户的Uid?

时间:2018-05-03 01:51:21

标签: android firebase firebase-realtime-database

所以我试图创建一个显示组中当前成员的回收站视图。下面我有我的数据库的图片,基本上我有一个groupId,它是创建者的uid,并且我们有3个用户和一些其他不相关的数据。

enter image description here

问题是我不知道如何获取特定的uid以便我可以获得他们的个人资料信息

groupsDatabase = FirebaseDatabase.getInstance().getReference().child("Groups").child(groupUid);

我也使用像这样设置的dynamicLinks

private void attachParameter(){
        Uri link = Uri.parse("https://y95rt.app.goo.gl/Lesn")
                .buildUpon()
                .appendQueryParameter("groupUid", groupUid)
                .build();
        generateDynamicLink(link.toString());

    }

    private void generateDynamicLink(String link) {
        Uri dynamicLink = Uri.parse("https://y95rt.app.goo.gl")
                .buildUpon()
                .appendQueryParameter("link", link)
                .appendQueryParameter("apn", "c.kristofer.jaxxx")
                .build();

        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_SUBJECT, "Join my group for Lesn");
        intent.putExtra(Intent.EXTRA_TEXT, dynamicLink.toString());
        startActivity(intent);

    }

任何答案/建议都表示赞赏,也可以改变我的结构。谢谢

1 个答案:

答案 0 :(得分:1)

删除ProfileInfo,然后执行此操作:

Groups
  groupid
     userid
       name: userx
       email: userx@gmail.com
     userid1
       name: usery
       email: usery@gmail.com

然后,如果您有一个名单列表,那么要检索以下内容:

DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("Groups").child(groupUid);

reference.orderByChild("name").equalTo(name_here).addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
public void onDataChange(DataSnapshot dataSnapshot) {
 for(DataSnapshot datas: dataSnapshot.getChildren()){
  String keys=datas.getKey();
   }
}
 @Override
public void onCancelled(DatabaseError databaseError) {
   }
});

快照将位于子groupid,然后如果条件满足,您将迭代并获取该用户的ID。