【问题标题】:Why can I write to `/users` with these Firebase Database rules?为什么我可以使用这些 Firebase 数据库规则写入 `/users`?
【发布时间】:2016-12-28 04:00:27
【问题描述】:

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

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

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

这是我的测试:

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

【问题讨论】:

  • 你在模拟器中使用了什么样的认证?这些都是您的安全规则吗?
  • 有了这些规则,你应该不能写信给/users。您能否分享更多信息(按照 Andre 的要求)以及显示成功(模拟)写入的模拟器屏幕截图?
  • 我已经编辑了问题并添加了我的测试屏幕@AndréKool
  • 您的截图与您询问的规则不符。

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


【解决方案1】:

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

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

如果你去掉顶层".write": "auth !== null",你会发现你不能再写/users,如果你是用户uid123,你只能写/users/uid123

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多