firebase - 如何使用开放规则启动 Firebase 实时数据库模拟器?
问题描述
我使用以下命令启动模拟器:
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"
我总是可以从远程项目(开发环境)中删除规则,但这一点都不理想。
解决方案
为了能够为您的模拟器使用不同的安全规则,您可以使用不同的文件。这样,您将拥有一个用于模拟器的文件和一个用于生产的文件,因此您不必担心测试。
您可以通过firebase.json
在模拟器的规则中配置一组不同的规则来实现。您可以在此处找到有关如何操作的更多信息。
推荐阅读
- protocol-buffers - 未找到自定义原始包装器的 ScalaPB TypeMapper
- ios - CollectionView 单元格未显示在屏幕上
- vue.js - 如何根据Vuex在同一路径中渲染两个组件?
- python - [Django]从下拉列表中选择项目后如何返回值以查看
- c# - RGBA(0.500, 0.500, 0.500, 1.000) 在光线投射颜色采样时返回 RGBA(0.502, 0.502, 0.502, 1.000)
- java - 获取提交按钮以在 recyclerview 适配器和主要活动中为 edittext 工作
- android - Kotiln:将数据从适配器传递到活动
- python - 使小部件填充整行
- asp.net - 如何在悬停时更改动态 ImageButton 的图像?
- ios - 如何修复 UICollectionView 单元格中的致命错误?