Firebase规则限制写入不工作

Firebase规则限制写入不工作,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我试图限制编辑数据库中的“版本”子项,但不知何故规则不起作用。以下是我在规则中的代码: { "rules": { ".read": true, ".write": true, "version": { ".write": false } } } 在规则游乐场中,它以某种方式跳过为特定子级定义的规则,并读取全局规则。此处发生的情况是,您将父级(

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

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

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

此处发生的情况是,您将父级(全局)规则定义为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
     }
  }
}

此解决方案适用于该版本,我无法再编辑它。但我不能编辑任何其他内容,这不是我想要的。你能帮我吗?例如,我有2000多个孩子的名字是随机产生的,我想为他们写。我该怎么做呢?“例如,我有2000多个孩子,他们的名字是随机生成的,我想为他们启用编写功能。”这与您最初的问题不同,但您需要了解通配符:或者您可以使用firebase的admin sdk动态部署规则。非常感谢大家!你解决了我的问题!