代码之家  ›  专栏  ›  技术社区  ›  Christopher Johnson

使用特定的UID锁定写访问

  •  0
  • Christopher Johnson  · 技术社区  · 6 年前

    我想制定一个规则,只有当我登录时才能写入数据库。

    我的理解是 ".write": "$uid === auth.uid" 仅限授权用户使用,而不限于我本人。

    我不知道如何做到这一点,所以我最终做的是设置一个GitHub登录(用于2FA)。

    我从中提取UID,并将其添加到结构的admins部分,并让规则对照该部分进行检查。

    我不确定这是否真的有效,他们的方式,我在这里设置,所以我想我会问社区。

    {
      "rules": {
        ".write": "root.child('admins').child('uid').val() == auth.uid",
        "admins": {
          ".read": "false"
        },
        "users": {
          ".indexOn": ["id"],
          ".read": "root.child('admins').child('uid').val() == auth.uid"
        },
        "posts": {
          ".indexOn": ["location"],
          ".read": "true"
        }
      }
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Ronnie Smith    6 年前

    Custom Claims .

    Firebase管理SDK支持在用户上定义自定义属性 账户。这提供了实现各种访问的能力 Firebase中的控制策略,包括基于角色的访问控制 应用程序。这些自定义属性可以为用户提供不同级别的 访问(角色),在应用程序的安全规则中强制执行。

    {
      "rules": {
        "adminContent": {
          ".read": "auth.token.admin === true",
          ".write": "auth.token.admin === true",
        }
      }
    }