我对云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
谢谢。
答案 0 :(得分:0)
安全规则中的布尔表达式从左到右评估和短路,就像几乎所有其他编程语言一样。如果您具有一系列逻辑AND操作,并且第一个操作为false,则整个规则将完成,并且访问将被拒绝。
请read the documentation以获取更多信息。