【发布时间】:2018-07-03 20:15:56
【问题描述】:
我有一个 Firestore 规则,直到我添加 OR 语句。不管右边是真是假,这不应该还是过去吗?
allow read: if exists(/databases/$(database)/documents/companies/$(company)/users/$(request.auth.uid))
|| hasRole(['Super', 'Manager', 'Tester']);
如果我省略了 || hasRole(['Super', 'Manager', 'Tester']);规则通过/允许数据访问。
这与函数有关还是我在 Firestore 规则中遗漏了 Or 语句?
function hasRole(roles) {
return get(/databases/$(database)/documents/companies/Seva%20Development/users/$(request.auth.uid)).data.roles.hasAny(roles);
}
companies/company/users/userId 有许多字段,其中之一是角色。 Roles 是一个字符串数组(例如:["Admin"、"Manager"、"Tester"])。
【问题讨论】:
-
请编辑您的问题以在您希望它检查的文档中显示
data.roles的数据类型和内容。
标签: firebase google-cloud-firestore firebase-security