Firestore 全局安全规则

时间:2021-01-16 06:05:57

标签: google-cloud-firestore firebase-security

在我的应用程序中,我希望拥有适用于所有路径的全局安全规则,如果这些规则失败,则应拒绝请求,如果它们通过,则遵循检查下一级定义的下一组规则。就文档而言,如果有多个匹配项,则它们是 OR 条件,因此只要其中一个返回 true 则授予权限。有没有办法让条件 AND 而不是 OR ?

目前我正在每个级别定义函数,并确保从任何内部匹配中调用它们,虽然它有效,但管理规则变得非常烦人。

-----编辑------

这是我想要实现的示例。 当用户尝试阅读文档时,有全局阅读规则,例如

function globalGetRules(){return request.auth != null && resource.data.deleted != true;}

然后每个集合可能有额外的规则来应用,例如

function someResourceGetRules(){return resource.data.draft != true || resource.data.owner == request.auth.uid;}

那么我所做的就是为了那个资源

allow get: if globalGetRules() && someResourceGetRules();

我正在寻找的是一种在所有资源上强制使用 globalGetRules 的方法,然后在它通过后,应该验证 someResourceGetRules,它也可以嵌套(未来计划,目前只有 1 个级别)

0 个答案:

没有答案