【问题标题】:Firebase security rules to an specific field特定字段的 Firebase 安全规则
【发布时间】:2018-07-26 20:50:55
【问题描述】:

我开始使用 Cloud Firestore,但我对安全规则有疑问。我需要知道是否可以为特定字段设置写权限。例如,我有一个名为“tickets”的集合,每个文档是:

ticket\
    id: "firebaseIdklnalskdla",
    status: "in_progress"
    creation_date: "28/08/2018"

我只需要为“状态”字段指定“写入”权限。这可能吗?

【问题讨论】:

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


    【解决方案1】:

    Firebase 团队制作了一个非常有趣的说明视频,他们在其中讨论了这个案例:https://youtu.be/8Mzb9zmnbJs?t=1313 创建文档后,您可以设置实际可以更改的字段的限制。

    【讨论】:

      【解决方案2】:

      安全规则可能看起来像这样(未经测试):

      service cloud.firestore {
        match /databases/{database}/documents {
      
        // here one can limit per user and other conditions, not per field. 
        match /tickets/{ticket} {
            allow update: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true;
        }
      
      }
      

      Structuring Cloud Firestore Security Rules 解释并

      同时还有一个Firestore Security Rules Simulator

      【讨论】:

      • 问题是关于 Firestore,但您显示的是实时数据库规则。它们非常不同。
      • @DougStevenson 改变了这一点。
      • 你试过这个看看它是否有效?我怀疑它不会,因为 Firestore 不允许每个字段的安全规则。
      • @DougStevenson 意识到,在尝试转换规则时——按用户组区分总比没有好......也许可以检查一下request.data['status'];一般来说,Firebase 可能更适合需求,因为它允许更细化的规则(一个不排除另一个)......问题的标题仍然是“Firebase”。
      猜你喜欢
      • 1970-01-01
      • 2020-01-28
      • 2022-01-19
      • 2021-01-04
      • 2017-12-01
      • 2022-12-06
      • 2019-02-05
      • 1970-01-01
      • 2016-06-27
      相关资源
      最近更新 更多