javascript - 是否可以使用 Firebase 权限仅公开 Firebase 数据库中对象的某些字段以进行读取访问?

标签 javascript json firebase firebase-realtime-database firebase-security

让我们考虑一下可以表示 Firebase DB 的 JSON 对象文字的以下结构:

{
  "users": {
    "user0": {
      "name": "Mike",
      "age": 20,
      "relationship": "married",
      "friends": [...]
    },
    "user1": {
      "name": "Sarah",
      "age": 20,
      "relationship": "single",
      "friends": [...]      
    },
    ...
  }
}

使用Firebase permission system ,是否可以使nameage所有人可读(通过将相应权限设置为true)但是关系状态仅对更细粒度的受众可见,例如用户 friend

我必须如何编写 security-rules.json 才能实现此目的?

最佳答案

就我个人而言,对于希望所有用户读取的数据和仅希望部分用户读取的数据,我会有不同的路径。现在这可能看起来很痛苦,但是当您继续开发应用程序时,您很可能会添加或更改用户的属性。每次执行此操作时,您都必须添加到数据库安全规则。

话虽这么说,如果您仍然想使用数据库安全规则来处理权限,您可以为每个要保护的路径编写规则。例如:

"rules": {
    "users": {
        "$user": {
            "relationship": {
                ".read": <some condition>
            }
        }
    }
}

查看the documentation例如。

关于javascript - 是否可以使用 Firebase 权限仅公开 Firebase 数据库中对象的某些字段以进行读取访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43851643/

相关文章:

firebase - 有没有办法对 Firebase 用户创建和/或密码重置进行电子邮件确认?

java - Jackson JSON,按路径过滤属性

javascript - 使用 Javascript 更改 HTML 元素的类

asp.net - 如何在谷歌地图上设置中心?

javascript - 如何在 select2 下拉列表中使用 MoOx pjax

python - 将 "size"元素附加到旭日图的最后一个 json 子元素

json - 带有 JSON 的 JsTree 卡在加载中

android - 提供的身份验证凭据格式错误或已过期

firebase - 如何获取Firestore文档特定数据Flutter

javascript - 无法在 Node 中加载/需要任何 css 文件