我目前正在开发一个应用程序,用户可以在其中创建组并邀请其他人加入其中。我希望同一组中的人能够看到他们的名字和姓氏。为此,我有一个名为“用户”的集合,其中每个用户都有一个包含其所有个人数据的文档,例如名字和姓氏、电话、职位……我还有另一个名为“组”的集合,其中我的所有组存储其名称和包含成员 ID 的数组。
当用户打开应用程序时,将完成第一个请求以请求他的组(他收到组名称和成员数组)。之后,如果他想知道某个组中的用户,则发出另一个请求,仅搜索所有成员的名字和姓氏。
因此,我想象有一个查询只会返回我想要检索的字段,并且有一条规则允许拒绝潜在的黑客访问整个用户文档,除非该用户是该文档的所有者该文件。
// For retrieving my user's groups
Stream<List<Group>?> get organizations {
return firestore
.collection('Groups')
.where('members', arrayContains: this.uid)
.snapshots()
.map(_groupsFromSnapshot);
}
Run Code Online (Sandbox Code Playgroud)
// For retrieving names of the members of a group
Stream<List<Member>?> getMembers(Group group){
return firestore
.collection('Users')
// and i dont know what to do here ...
}
Run Code Online (Sandbox Code Playgroud) dart firebase google-cloud-platform flutter google-cloud-firestore