【发布时间】: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