Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 使用特定UID锁定写访问_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Firebase 使用特定UID锁定写访问

Firebase 使用特定UID锁定写访问,firebase,firebase-realtime-database,firebase-authentication,Firebase,Firebase Realtime Database,Firebase Authentication,我想制定一个规则,只有我在登录时才能写入数据库 我的理解是,“.write”:“$uid===auth.uid”只限制对授权用户的写入,而不仅仅是对我 我不是100%确定如何做到这一点,所以我最后做的是设置一个GitHub登录(用于2FA) 我从中获取UID并将其添加到我的结构的admins部分,并对其进行规则检查 我不确定这是否真的有效,因为我在这里设置了它,所以我想我应该问问社区 { "rules": { ".write": "root.child('admins').child

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

我的理解是,
“.write”:“$uid===auth.uid”
只限制对授权用户的写入,而不仅仅是对我

我不是100%确定如何做到这一点,所以我最后做的是设置一个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"
    }
  }
}

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

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

在我看来是正确的-有什么特别的事情让你不这么想吗?@JeremyW我只是不太了解规则,也不确定我做的事情是否正确。它似乎按照我希望的方式工作,但我想我会问那些比我知道得更多的人。明白了-安全比抱歉更好:)看起来和我过去做的一样,规则设置也一样。看起来不错。Firebase控制台中有一个模拟器,可以让你测试规则是否按照你期望的方式工作。