【问题标题】:Set rule to allow unauthenticated users to only write new data in Firebase database设置规则以允许未经身份验证的用户仅在 Firebase 数据库中写入新数据
【发布时间】:2017-07-25 16:51:34
【问题描述】:

我的应用程序允许任何人编写新消息(该消息无法更新或删除),该消息应该只对经过身份验证的用户可见。经过身份验证的用户可以编辑数据(其中包括标记为重要的内容等)。将应用程序想象成一个私人建议箱(任何人都可以提交建议,但只有管理员可以查看提交的建议)。我正在使用 Firebase 模拟器,但以下失败但不应该:

Firebase 模拟器

  • 位置:消息/
  • 认证:假
  • 数据(JSON)

    { “核心价值” }

Firebase 数据库规则

{
  "rules": {
    "messages": {
      "$message": {
        ".read": "auth !== null",
        ".write": "!data.exists() || auth !== null",
      },
    },
    "users": {
      ".read": "auth !== null",
      ".write": "auth !== null"
    }
  }
}

【问题讨论】:

  • 您共享的规则乍一看是正确的:任何非管理用户都应该拒绝写/messages。你能发布一个模拟器的截图包含相同的信息吗?
  • @FrankvanPuffelen 我添加了一个屏幕截图,所以这个问题将来可能会让某人受益。下面的答案解决了我的问题。谢谢!

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


【解决方案1】:

我认为这是因为您正在使用 messages/ 进行测试,而只允许写入 messages/{message-id}。尝试写入消息/随机的东西。

【讨论】:

  • 谢谢!我认为我的规则是正确的,但没有意识到我没有正确使用模拟器。
猜你喜欢
  • 2020-03-06
  • 2023-03-13
  • 2019-01-10
  • 2017-11-15
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
  • 2020-05-10
  • 2019-07-10
相关资源
最近更新 更多