javascript - 基于数据对象的 Firebase 用户写入/读取规则

标签 javascript firebase firebase-security firebasesimplelogin

我正在使用 firebase,我的用户设置如下:

{
    "firebase-account-123": {
        "users": {
            "simplelogin:1": {
                "properties"{ "name": "john doe", "email": "user@email.com" }
                "children": {
                    "simplelogin:2":{ "name": "user 2", "email": "user2@email.com" },
                }
            },
            "simplelogin:2": {
                "properties"{ "name": "user 2", "email": "user2@email.com", "disabled": false }
            }
        }
}

我有客户经理应该有权访问的“ child ”。我是新手,我正在尝试解决我遇到的一些权限问题。

我的规则目前只允许用户读/写他们自己的数据。

.read": "auth.uid == $userid", ".write": "auth.uid == $userid"

有谁知道我如何才能让他们也能够为列在他们的“子”对象中的用户写入/读取数据(也许只是在属性对象中)?

最佳答案

如果您想允许 children 存储桶下列出的用户 ID 也可以读取和写入数据,请尝试在您的安全规则中使用 hasChild() 方法.

例如,使用您在上面概述的相同数据结构:

{
  "rules": {
    ".read": false,
    ".write": false,
    "users": {
      "$userid": {
        ".read": "auth.uid == $userid",
        ".write": "auth.uid == $userid",
        "properties": {
          ".read": "root.child('users').child(auth.uid).child('children').hasChild($userid)"
        }
      }
    }
  }
}

关于javascript - 基于数据对象的 Firebase 用户写入/读取规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26913202/

相关文章:

javascript - Firebase 安全规则不起作用

javascript - js flipcards 中的故障 - 翻转

javascript - Datatable、使用固定列时表格重叠

javascript - 使用 Javascript 创建虚拟交互对象

android - 在哪里可以找到 Firebase 云消息传递的 Reference_Ids?

android - 无法使用 firebase-config :16. 0.0 和 firebase-core :16. 0.1 构建

javascript - Node 或 v8 中内置 JavaScript 类型的引用

node.js - 在 Firebase Cloud Functions 中仅部署单个非导出函数

firebase - 将 FirebaseAuth 的当前 session / token 从原生 Android 应用程序传递到 WebView 的 Firebase 应用程序

firebase - 使用 bolt 部署规则会添加额外的 "rules"包装器