【问题标题】:Firebase Database - Can the creator read & write with it being false?Firebase 数据库 - 创建者可以在它为假的情况下读写吗?
【发布时间】:2020-04-30 15:29:52
【问题描述】:
我想知道数据库的创建者是否可以读写,而不管它都设置为 false 吗?
{
"rules": {
".read": false,
".write": false
}
}
如果是这样,包括创作者在内的任何人都无法读写,我该如何做到这一点,以便我可以成为唯一可以读写的人?
【问题讨论】:
标签:
firebase-realtime-database
firebase-authentication
firebase-security
【解决方案1】:
使用您所展示的安全规则,无论用户在您的应用中如何进行身份验证,所有来自移动和网络客户端的直接访问都将被完全拒绝。
但是,使用服务帐户初始化的所有后端 SDK,尤其是 Firebase Admin SDK,将始终绕过安全规则。这意味着,例如,在 Cloud Functions 中运行的代码不会受到影响。此帐户不一定是数据库的“创建者” - 它只是添加到项目中的 Cloud IAM 帐户。
Firebase 控制台也会绕过安全规则。
这意味着您可以代表最终用户编写与数据库一起使用的后端服务和 API 端点,而无需授予他们对数据的任何直接访问权限。
如果您只希望通过 Firebase 身份验证的特定用户能够读取和写入网络或移动应用程序中的数据,则必须使用该帐户的给定 UID 将其编码到您的安全规则中。