首页 > 解决方案 > 允许在 Realtime Firebase 数据库中写入一个孩子

问题描述

在实时 Firebase 数据库中,Childs 有很多

在那些孩子中还有更多。

我要添加什么规则,所以 Read = true Butt只写给孩子“学生”和那个孩子的一切

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

我缺少预期的“,”或“}”。

标签: firebasefirebase-realtime-databasefirebase-security

解决方案


Firebase 实时数据库的安全规则为 JSON 格式,而您拥有的不是有效的 JSON。事实上,它甚至不接近。

我强烈建议使用一种工具来显示您的代码是否是有效的 JSON(快速搜索可以帮助您找到其中之一)。

与您所拥有的最接近的有效 JSON 似乎是:

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

虽然这现在是有效的 JSON,但它不是一组有效的安全规则,因为您在安全规则中只能有一个顶级事件(名称rules),并且您的其余规则需要在此之下。


要使其成为有效的安全规则,请将Pupil节点嵌套在顶层rules

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

因此,您应该能够将上述内容保存在 Firebase 控制台中而不会出现错误。


您可以将其简化为:

{
  "rules": {
    ".read": true,
    "Pupil": {
      ".write": true
    }
  }
}

顶级读权限由根下所有节点自动继承。而且默认情况下没有权限,所以".write": false这里隐含了根目录上的。


推荐阅读