【发布时间】:2021-11-03 17:47:25
【问题描述】:
我正在尝试设计一个 firestore 架构,它允许许多组的人只编辑他们自己组的文档,但服务范围内的任何人都可以阅读它们。 Firestore 的安全规则设置似乎无法实现。
基于角色的访问
Firebase 支持role-based access control,但它适用于整个服务范围的文档,我无法支持很多组。
自定义角色是通过 gcloud 控制台创建和分配的,因此我无法为每个组创建新的动态自定义角色,以便他们拥有自己的组。
Firestore 触发器复制文档
我考虑使用 Firestore 触发器(onCreate、onUpdate、onDelete)将文档复制到同一组中的其他用户的子集合中。这样做的问题是它可能会创建一个无限循环的触发器,因为每个成员都可以更新一个文档。理论上,您可以在复制的文档上使用属性集来防止这种情况发生,但感觉有点笨拙和脆弱。
是否有最佳实践,或者 Firestore 无法做到这一点?
【问题讨论】:
标签: firebase google-cloud-firestore