只允许服务帐户访问Firetime实时数据库的子集



我需要在远程服务器上运行一些代码,这些代码只能访问Firebase实时数据库的一个子集。

我想我将能够创建一个访问数据库的服务帐户,并使用安全规则管理它更详细的读/写权限。事实似乎并非如此。

我不希望此服务帐户对我的Firebase项目有任何其他访问权限。

下面是一个我认为我的安全规则大致是什么样子的例子:

{
"rules": {
"my_restricted_data": {
"X": {
".read": "auth.my_service_account_id === 'X'",
".write": "auth.my_service_account_id === 'X'"
}
}
}
}

看看谷歌云平台的角色和权限,我似乎无法将Firebase实时数据库访问与我不想授予该服务的其他重要权限区分开来。

有什么办法让我做这件事吗?

我用的是红宝石火球https://github.com/oscardelben/firebase-ruby

谢谢!

您使用的库包装了Firebase REST API,它本身可以作为管理超级用户和常规身份验证用户访问数据库。不幸的是,库提供的两种身份验证方法都提供了对数据库的管理访问权限,而无需指定自己的UID。这意味着没有办法限制你的代码可以做什么

我建议在repo上提交一个功能请求(或PR(,通过REST API添加普通用户的签名,然后只允许您的规则为其设置的访问权限。

最新更新