【问题标题】:Can Firestore rules have exceptions?Firestore 规则可以有例外吗?
【发布时间】:2020-08-20 15:22:54
【问题描述】:

我想允许经过身份验证的读/写匹配/users/{userid}/{document=**},即/users/userid 下的所有文档,除了/users/{userid}/account-info/{document=**},这是仅限管理员的特权区域。这可能吗?

【问题讨论】:

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


    【解决方案1】:

    当您使用诸如/users/{userid}/{document=**} 之类的通配符来提供对文档层次结构的访问时,不可能使用另一条规则拒绝对其中一个文档的访问。使用安全规则,如果 any 规则允许访问文档,则该访问是永久的并且不能被覆盖。我建议阅读overlapping match statements 上的文档。

    如果您想禁止访问一个名为“account-info”的子集合,那么您将不得不编写规则以仅允许访问其他每个子集合,并完全省略“account-info”。

    您可能还需要考虑将子集合分为“公共”和“私有”组,以便更轻松地应用不同的规则。例如:

    /users-public/{userid}/{document=**}
    /users-private/{userid}/{document=**}
    

    然后根据它们的顶级集合编写规则以不同方式保护它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 2019-07-06
      • 2018-03-17
      • 2021-01-28
      • 2020-08-20
      • 1970-01-01
      相关资源
      最近更新 更多