【发布时间】:2014-10-30 15:31:04
【问题描述】:
我已经阅读并尝试了非规范化,虽然它对于像 cmets/messages 这样可以公开访问而用户只能写入自己的路径/节点的情况非常有意义,但我很难限制“。读取”规则给用户/所有者和另一个用户/管理员。我的用例没有公开发布所有消息。举例来说,user1 的消息只有 user1 和 admin 可读,而 user1 仍然只写。
这是如何实现的?在安全规则中,我尝试过:
"messages": {
".read": "auth !== null",
".write": "auth !== null",
"$message": {
".read": "data.child('userID').val() === auth.uid"
}
}
或
"messages": {
".write": "auth !== null",
"$message": {
".read": "data.child('userID').val() === auth.uid"
}
}
或
"messages": {
"$user_id": {
".read": "auth.uid === $user_id"
".write": "auth.uid === $user_id"
}
}
虽然最后一个确实限制了对经过身份验证的用户(比如 user1)的读写,但我没有运气让管理员用户获取所有用户的消息。首先,我无法绕过级联/自上而下的规则。
我是 firebase 新手,所以如果这真的很简单,我很感激任何帮助。
谢谢!
【问题讨论】:
标签: firebase angularfire firebase-security