【发布时间】:2019-11-22 14:38:28
【问题描述】:
我想要的是能够发送一个查询,返回用户所在的所有团队,所以 f.ex。 uid1 将返回 team1,但不返回其他团队。我当前的模型不起作用,因为我只是遇到权限问题,因为用户无权阅读 Teams 集合中的所有文档。
Teams 集合可以包含多个团队,并且用户可以是多个团队的一部分。
这就是我当前的 Firestore 的组织方式:
Users:
uid1
firstname: xxxx
lastname: yyyy
Teams:
team1
subCollection1
...
subCollection2
...
members
uid1
...
roles
uid1
role: dev
team2
...
我只能想到两种解决方案,但似乎都不是很好。
- 在 Users 集合中的每个用户下都有一个列表/子集合,其中包含用户所在的所有团队。
- 在包含团队成员所有 uid 的 Teams 集合内的每个文档中都有一个数组类型的字段。 (然后使用 .where("members", "array-contains", uid))
组织数据以实现我想要的功能的最佳方式是什么?
【问题讨论】:
-
不要描述你的数据库的样子,而是添加它的截图。
标签: firebase google-cloud-firestore