Firebase实时数据库只写权限

idfiyjo8  于 2023-03-03  发布在  其他
关注(0)|答案(2)|浏览(247)

我需要一个python脚本的服务帐户来验证我的firebase项目。这个服务帐户应该只有写特定分支的权限,而不能读,更新甚至删除其他任何东西。预定义的角色(编辑者,所有者)有太多的权限,所以我阅读了google IAM文档并创建了一个自定义配置文件。如果我做对了,
firebasedatabase.instances.update
在安全规则中,我可以指定它在特定分支中的读写权限,但有了上述权限,也就有了对我的安全规则的访问权限:

See Documentation
这真的是只授予对我的实时数据库的写访问权限的唯一方法吗?还是这里有另一种方法?允许修改安全规则与读写访问权限相结合对我来说没有多大意义。

ggazkfy8

ggazkfy81#

默认情况下,使用服务帐户访问会绕过Firebase安全规则,因此它要么可以访问整个数据库,要么不能访问任何数据库。
你可以初始化Admin SDK来使用有限的权限进行身份验证,这基本上意味着你在代码中指定了确切的用户配置文件,然后可以在安全规则中检查它。

6za6bjd0

6za6bjd02#

要授予服务帐户写入特定分支但不读取、更新或删除任何其他内容的能力,可以使用Firebase's database security rules设置适当的授权。您需要向父节点添加赠款服务帐户写入权限的规则,然后向特定分支添加拒绝所有其他操作(读取、更新或删除)的规则。示例:

{
  "rules": {
    "parent_node": {
      ".write": "auth.uid == 'service_account_uid'",
      ".read": false,         
    },
    "parent_node/specific_branch": {
      ".write": true,
      ".read": false,        
    }
  }
}

您可以在此blog by Julio Maren中找到有关它的更多信息。

相关问题