Firebase安全规则比较逻辑

时间:2019-10-04 15:33:23

标签: firebase google-cloud-firestore firebase-security

我对云Firestore安全规则的逻辑如何工作有疑问:

让我们说我有这样的规则:

allow read: if (auth.token.user === true && request.query.limit < 100 && uidInDocument()) || auth.token.admin === true && get(/databases/$(database)/documents/users/$(request.auth.uid)).data.name == "foo";

现在,我的问题是or语句的第一部分是否正确,是否意味着第二部分没有执行?我正在考虑这一点,因为我不想引起读除非,否则有必要这样做,在这种情况下,如果用户是admin

谢谢。

1 个答案:

答案 0 :(得分:0)

安全规则中的布尔表达式从左到右评估和短路,就像几乎所有其他编程语言一样。如果您具有一系列逻辑AND操作,并且第一个操作为false,则整个规则将完成,并且访问将被拒绝。

read the documentation以获取更多信息。