【问题标题】:Cascade in Firebase Realtime Database's Security ruleFirebase 实时数据库安全规则中的级联
【发布时间】:2021-02-01 10:24:13
【问题描述】:
{
  "rules": {
    "USER":{
      "$uid":{
        ".write": "auth.uid == $uid && auth.uid != null",
        ".read": "auth.uid == $uid && auth.uid != null",
        
        "DELETE_ARTICLE":{
          ".write": "auth.uid == $uid && auth.uid != null",
            ".read": false
        },
        "FOLDER":{
          ".write": "auth.uid == $uid && auth.uid != null",
            ".read": "auth.uid == $uid && auth.uid != null"
        }
      }
    }
  }
}

我想让用户在“USER/{$uid}”而不是“USER/{uid}/DELETE_ARTICLE”中阅读他们的字段。 但由于级联条件,我不能这样做。 我该怎么办。

【问题讨论】:

    标签: firebase-realtime-database firebase-security


    【解决方案1】:

    正如您发现的permission cascades downwards一旦您授予某人对某个节点的读取或写入权限,您就不能在较低级别取消该权限。

    这意味着,如果您希望对部分数据具有不同的权限,则需要将这些部分放在数据库的不同分支中。例如,您可以:

    USER: {
      "$uid": {
        ...
      }
    },
    DELETE: {
      "$uid": {
        ...
      }
    }
    

    现在您可以分别授予 /USER/$uid/DELETE/$uid 的权限。


    【讨论】:

      猜你喜欢
      • 2020-08-08
      • 2021-10-26
      • 2020-12-28
      • 2021-12-05
      • 2021-02-13
      • 2018-08-27
      • 2021-02-11
      • 2020-07-11
      相关资源
      最近更新 更多