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

Set rule to allow unauthenticated users to only write new data in Firebase database

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

Firebase 模拟器

Firebase 数据库规则

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

我认为那是因为您正在使用 messages/ 进行测试,而只允许写入 messages/{message-id}。尝试写入 messages/somethingrandom.