设置规则以允许未经身份验证的用户仅在 Firebase 数据库中写入新数据
Set rule to allow unauthenticated users to only write new data in Firebase database
我的应用程序允许任何人写一条新消息(消息不能更新或删除),然后只有经过身份验证的用户才能看到。经过身份验证的用户可以编辑数据(其中包括标记为重要等内容)。将该应用程序想象成一个私人建议箱(任何人都可以提交建议,但只有管理员可以查看提交的建议)。我正在使用 Firebase 模拟器,但以下操作失败了,但它不应该:
Firebase 模拟器
- 写
- 位置:消息/
- 已验证:假
数据(JSON)
{
"key": "value"
}
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.
我的应用程序允许任何人写一条新消息(消息不能更新或删除),然后只有经过身份验证的用户才能看到。经过身份验证的用户可以编辑数据(其中包括标记为重要等内容)。将该应用程序想象成一个私人建议箱(任何人都可以提交建议,但只有管理员可以查看提交的建议)。我正在使用 Firebase 模拟器,但以下操作失败了,但它不应该:
Firebase 模拟器
- 写
- 位置:消息/
- 已验证:假
数据(JSON)
{ "key": "value" }
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.