Cloud Firestore忽略规则

发布时间:2020-07-07 10:05

我在我的项目中使用Google Cloud Platform Cloud Firestore数据库。我在开发人员模式下启动它,以对数据进行建模并填充记录。

现在我已经准备好投入生产,因此我正在使用Firebase控制台而不是GCP来制定规则。 但这似乎忽略了我插入的每条规则。例如,如果我写这样的话

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false
    }
  }
}

每次尝试读取或创建的规则游乐场都使用失败,并显示以下消息:“模拟读取被拒绝”(例如)

但是,如果我从node.js应用程序中调用查询,则可以读取,创建,编辑和删除所有内容,就像忽略规则一样。

规则监视器未显示任何错误。

这与GCP Firestore有关吗?我以为他们使用的是同一个plaftorm,实际上,他们通常指向Firebase控制台进行操作,而不是GCP控制台

回答1

从NodeJS运行的Admin SDK可以绕过任何安全规则,并且几乎可以对所有Firebase产品执行任何操作。

因此,它只能在管理您的应用的服务器上的受信任环境中运行。它提供了更多功能,并允许服务器执行您不​​希望客户端执行的操作(例如更改排行榜)。您可以阅读有关SDK及其权限here

的更多信息