为什么我可以使用这些Firebase数据库规则写入`/ users`?

时间:2016-08-21 14:32:33

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

我已阅读Google Firebase数据库安全规则文档,并在规则文件中实施了以下规则:

{
  "rules": {
    "users": {
      "$user": {
        ".read": "auth.uid === $user",
        ".write": "auth.uid === $user"
      }
    }
  }
}

问题是在模拟器中测试它我看到我可以在用户中读写所有内容,就像没有规则一样。
这是Firebase数据库问题吗?我该如何解决?

这是我的测试: Firebase database test

以下是文档的链接:https://firebase.google.com/docs/reference/security/database/#variables

1 个答案:

答案 0 :(得分:3)

屏幕截图中的规则与您之前发布的规则不同。

在Firebase数据库安全模型中,权限级联:一旦您授予用户对节点的读取或写入权限,您就无法在较低级别上取消该权限。请参阅documentation on security rules for more information

如果您删除顶级".write": "auth !== null",则会发现您无法再写信至/users,并且如果您是“{1}},则只能写入/users/uid123 uid123 1}}。