让我们考虑一下可以表示 Firebase DB 的 JSON 对象文字的以下结构:
{
"users": {
"user0": {
"name": "Mike",
"age": 20,
"relationship": "married",
"friends": [...]
},
"user1": {
"name": "Sarah",
"age": 20,
"relationship": "single",
"friends": [...]
},
...
}
}
使用Firebase permission system ,是否可以使name
和age
对所有人可读(通过将相应权限设置为true
)但是关系
状态仅对更细粒度的受众可见,例如用户 friend
。
我必须如何编写 security-rules.json
才能实现此目的?
最佳答案
就我个人而言,对于希望所有用户读取的数据和仅希望部分用户读取的数据,我会有不同的路径。现在这可能看起来很痛苦,但是当您继续开发应用程序时,您很可能会添加或更改用户的属性。每次执行此操作时,您都必须添加到数据库安全规则。
话虽这么说,如果您仍然想使用数据库安全规则来处理权限,您可以为每个要保护的路径编写规则。例如:
"rules": {
"users": {
"$user": {
"relationship": {
".read": <some condition>
}
}
}
}
查看the documentation例如。
关于javascript - 是否可以使用 Firebase 权限仅公开 Firebase 数据库中对象的某些字段以进行读取访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43851643/