设置规则以允许未经身份验证的用户仅在Firebase数据库中写入新数据

时间:2017-03-05 23:03:12

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

我的应用允许任何人编写新邮件(邮件无法更新或删除),然后只有经过身份验证的用户才能看到该邮件。经过身份验证的用户可以编辑数据(包括重要标记等内容)。将应用程序想象为私人建议框(任何人都可以提交建议,但只有管理员可以查看提交的建议)。我使用Firebase模拟器,但以下操作失败,但不应该:

Firebase模拟器

  • 位置:消息/
  • 经过身份验证:false
  • 数据(JSON)

    {   "关键":"价值" }

Firebase数据库规则

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

simulator screenshot

1 个答案:

答案 0 :(得分:2)

我认为这是因为您正在使用消息进行测试/而只允许写入消息/ {message-id}。尝试写信息/ somethingrandom。