如何用另一个集合过滤一个集合?

时间:2020-05-12 12:42:11

标签: firebase flutter google-cloud-firestore

我有两个主要的收藏集:

  • groups,它是在自动ID上键入的,并且具有GroupID = (auto-id)CreatorGroupname字段。
  • users,键在uid上,具有子集合usergroups 其中包含分配给用户的所有GroupIDs (auto-ids from the Groups collection)

现在我想用groups集合过滤usergroups集合。

结果应该是用户仅看到保存在其用户配置文件中的组。 enter image description here

enter image description here

我的第一次尝试是这样的:

Stream<QuerySnapshot>  userGroupIDs() async*{
    String docId;
     Stream<QuerySnapshot> snap = Firestore.instance.collection("users").document("uid").collection('usergroups').snapshots();
     await for(var snapData in snap){
       snapData.documents.forEach((docResult){
        docId =  docResult.documentID;
       });
     }
   yield* Firestore.instance.collection('groups').where('GroupID', isEqualTo: docId).snapshots();
  }

然后在StreamBuilder内:

StreamBuilder<QuerySnapshot>(
                            stream: userGroupIDs(),

0 个答案:

没有答案