如何使用用户/ uid /用户组中的文档ID过滤组/集合中的文档?
我想用存储在用户/ uid /用户组中的文档ID过滤组/以仅向用户显示组 存储在他的用户个人资料中。
我没有收到此代码的错误消息,但没有看到任何群组...。
Stream<QuerySnapshot> get userGroupIDs {
return userGroupCollection.document(uid).collection('usergroups').snapshots();
}
Stream<QuerySnapshot> get group {
return db.collection('groups').where('GroupID', isEqualTo: userGroupIDs).snapshots();
}
。
StreamBuilder<QuerySnapshot>(
stream: group,
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) {
return new Text('Connecting...',style: TextStyle(fontSize: 200),);
} else {return ListView.builder(
答案 0 :(得分:1)
尝试以下操作:
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(),
首先从集合documentID
中获取usergroups
,然后在查询中使用GroupID
使用该ID