【发布时间】:2020-10-27 13:35:24
【问题描述】:
我在我的项目中使用 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 有关吗?我假设他们使用相同的平台,实际上他们经常指向 Firebase 控制台而不是 GCP 控制台进行操作
【问题讨论】:
-
您可能在您的 nodejs 应用程序中使用了 Admin SDK。 adminSDK 可以做任何事情,因为它只能在受信任的环境中运行,例如服务器。
-
是的,我确实在使用 Admin SDK。是的,它位于受信任的服务器中。我不知道它绕过了安全规则
标签: node.js firebase google-cloud-firestore