Firebase 规则限制写入不起作用

时间:2020-12-30 14:44:24

标签: firebase firebase-realtime-database firebase-security

我试图限制在我的数据库中编辑“版本”子项,但不知何故规则不起作用。这是我在规则中的代码:

{
  "rules": {
    ".read": true,
    ".write": true,
    "version": {
       ".write": false
    }
  }
}

在规则操场中,它以某种方式跳过为特定子项定义的规则并读取全局规则。

1 个答案:

答案 0 :(得分:2)

这里发生的事情您将父级(全局)的规则定义为 true 并且您试图限制其子级(本地)的访问,因此默认情况下它将采用父级的属性进行访问。相反,您可以做的是,如果您想允许所有孩子的阅读访问权限并限制对特定孩子的写访问权限,您可以定义这样的规则

{
  "rules": {
    ".read": true,
    "version": {
       ".write": false
    }
  }
}

因此,如果您添加更多孩子并希望给他们一些特殊访问权限

{
  "rules": {
    ".read": true,
    "version": {
       ".write": false
    },
    "data": {
       ".write": true
     }
  }
}

假设您想限制第二个孩子的读取访问权限,因此您将为每个孩子定义规则,而不是全局定义规则

{
  "rules": {
    "version": {
       ".read": true,
       ".write": false
    },
    "data": {
       ".read": false,
       ".write": true
     }
  }
}