【问题标题】:Firebase Security rules comparison logicFirebase 安全规则比较逻辑
【发布时间】:2019-10-04 15:33:23
【问题描述】:

我对 Cloud 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

提前致谢。

【问题讨论】:

  • 嗨 - 我能问一下你为什么不赞成我的问题吗?谢谢。

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


【解决方案1】:

安全规则中的布尔表达式从左到右求值和短路,就像几乎所有其他编程语言一样。如果你有一系列的逻辑与操作,并且第一个是假的,那么整个规则就结束了,访问被拒绝。

read the documentation了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 2020-09-06
    • 2016-07-16
    相关资源
    最近更新 更多