google-cloud-firestore - Firestore 模拟器:使用主机 0.0.0.0 在 UI 中看不到文档
问题描述
我在 Windows 上使用 firebase -tools v9.0.1,使用 NVM for Windows v1.1.7 和 Node v14.15.2。
我已经成功安装并且可以运行模拟器来运行 firestore、functions 和 auth。我已经使用模拟器 UI 用数据填充了 Firestore,并用于firebase emulators:export test_data
导出一些测试数据。我现在在启动模拟器时使用它,firebase emulators:start --import test_data
以便在模拟器 UI 中重新启动后看到我的所有测试数据。
当我将 firebase.json 中的主机更改为 0.0.0.0 时,奇怪就开始了,这样我就可以将在真实设备上运行的颤振应用程序连接到模拟器:
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
],
"source": "functions"
},
"emulators": {
"auth": {
"port": 9099
},
"functions": {
"port": 5001,
"host": "0.0.0.0" <-- this is added
},
"firestore": {
"port": 8080,
"host": "0.0.0.0" <-- this is added
},
"ui": {
"enabled": true
}
}
}
当我这样做并重新启动模拟器时,它们会成功启动,并且我可以访问 UI - 但所有文档都消失了。我可以看到所有的收藏,只是看不到任何文件。但是,设备可以看到文档 - 所以它们在那里,只是 UI 没有显示它们。该设备甚至可以添加文档(也不会出现在 UI 中)。如果我再次导出数据,然后在没有 host 的情况下重新启动模拟器0.0.0.0
,嘿,所有文档都会再次出现,其中的文档是使用设备添加的。
似乎正在发生的是,当我使用主机 0.0.0.0 运行时,UI 无权查看任何文档。这是预期的还是这是一个错误?有没有办法解决?模拟器似乎没有任何安全规则,所以我有点卡住了。
编辑
启动开发者控制台后,我可以在模拟器 UI 页面上看到:
VM6:1 POST http://0.0.0.0:8080/google.firestore.v1.Firestore/Listen/channel?database=projects%2Fmyproject%2Fdatabases%2F(default)&VER=8&RID=9716&CVER=22&X-HTTP-Session- Id=SomeRedactedStuff net::ERR_ADDRESS_INVALID
所以我猜问题是用户界面在 0.0.0.0 而不是 localhost 上寻找火力基地。我不确定如何解决。
解决方案
事实证明这是一个错误,现在已在 firebase-tools v9.1.0 中修复。如果您已全局安装 CLI,请使用以下命令检查您的版本:
npm outdated -g --depth=0
如果您有较早的版本,例如:
Package Current Wanted Latest Location
firebase-tools 9.0.1 9.1.0 9.1.0 global
使用更新:
npm install -g firebase-tools
推荐阅读
- plsql - PL/SQL 包编译错误:PLS-00323
- android - 如何使可绘制背景突出显示如下图所示的选项卡
- vue.js - 在向导中将数据从子组件传递到父组件-VueJs
- azure - 将 Azure AD 中已使用域的子域用于 Azure AD B2C 租户
- c# - 如何使用 Trello API 使用电子邮件和密码登录 Trello 帐户?
- javascript - 图像未加载
- visual-studio - 在 jupyter notebook 中编辑单元格时是否有选择当前单词的快捷方式?
- javascript - 返回承诺的最惯用方式,还是返回承诺的函数?
- stm32f4 - 为什么在 PWM 模式下清除 TIM1->BDTR 中的 MOE 会停止为 STM32F401 触发 ADC1 IN STM32 Nulceo-64?
- sql-server - 制作过程时出现 MS SQL 服务器错误