Multi-Tenancy 应用集合组查询的最佳做法是什么?例如查询租户客户的所有发票
/tenant/1/customer/2/invoices
如果我创建一个名为invoices 的收款组索引,并且我想确保我可以获得租户 1 的所有invoices,我该如何轻松地做到这一点?
我尝试设置一些安全规则来防止查询租户,但它仍然抛出访问被拒绝的错误,因为它仍在跨租户查询。正确的 Firestore 规则应该是什么样的
最佳答案
Firebase 项目不太适合 Multi-Tenancy 应用。建议您为每个租户创建不同的项目。 这将为您在未来避免很多问题。
如果您绝对必须在单个项目上使用 Multi-Tenancy ,则您当前的数据库结构不能很好地支持集合组查询。集合组查询始终查询给定名称的每个集合,无一异常(exception)。您不能使用安全规则来过滤结果,因为 rules are not filters .过滤只能来自客户端,并由安全规则确认。使用您当前的结构,您需要将租户的 ID 存储在您打算使用集合组查询查询的每个文档中,并让客户端使用它作为结果的过滤器。
关于firebase - 在 Firestore 中使用集合组查询的 Multi-Tenancy 应用程序的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56410515/