【发布时间】:2021-01-23 03:08:49
【问题描述】:
我使用以下命令启动模拟器:
firebase emulators:start --project my_remote_project_id --only database,functions --inspect-functions
当我进入语言环境控制台(http://localhost:4001/database)时,我可以看到 2 个数据库:
- my_remote_project_id
- 假服务器
当我转到http://localhost:9000/.inspect/coverage?ns=my_remote_project_id 时,我可以看到规则是我的远程项目的规则。
当我去http://localhost:9000/.inspect/coverage?ns=fake-server时,规则是开放的:
{
"rules": {
".read": true,
".write": true
}
}
由于my_remote_project_id数据库的规则,我无法导入我要测试的json。我可以在 fake-server 数据库上做到这一点。
问题是云功能只会在my_remote_project_id 上触发,而不会在fake-server 上触发。
我错过了什么吗?
我使用admin.initializeApp() 启动应用程序并导出export FIREBASE_DATABASE_EMULATOR_HOST="localhost:9000"
我总是可以从远程项目(开发环境)中删除规则,但这一点都不理想。
【问题讨论】:
-
嗨@Nico 您是否尝试为模拟器的安全规则使用不同的文件?正如here 解释的那样,您可以通过在
firebase.json中配置它来为模拟器中使用的规则使用不同的文件。 -
@gso_gabriel 非常感谢,我错过了配置部分。随意添加回复,我会将其标记为已接受的答案。
-
嗨@Nico 很高兴听到它有帮助!我发布了一个答案:)
标签: firebase firebase-realtime-database google-cloud-functions firebase-tools