Firebase/Firestore模拟器无法通过本地网络访问该如何解决?
解决步骤
- 修正配置并重启模拟器
将firebase.json的Firestore模拟器配置调整为监听所有网卡,注意host不要带任何协议前缀,正确配置如下:
修改完成后完全关闭当前运行的Firebase模拟器进程,重新执行"emulators": { "firestore": { "port": 8080, "host": "0.0.0.0" } }firebase emulators:start命令启动服务,确保配置生效。 - 修正客户端连接代码
firebaseInit.js中的模拟器连接代码不需要带http://前缀,直接填写运行模拟器的电脑的本地局域网IP即可,正确写法:connectFirestoreEmulator(db, '192.168.1.23', 8080) - 排查电脑防火墙限制
打开运行模拟器的电脑的防火墙设置,添加8080端口的入站允许规则,或者临时关闭防火墙测试连接是否正常,避免防火墙拦截来自iPhone的局域网请求。 - 确认iPhone侧网络与权限配置
- 确保iPhone和运行模拟器的电脑连接的是同一个WiFi网络,没有开启VPN、代理或单独使用蜂窝数据
- 打开iPhone自带的Safari浏览器,访问
http://192.168.1.23:8080,如果能正常打开Firestore模拟器的状态页面,说明网络链路通畅;如果打不开优先排查前三个步骤的配置 - 如果是iOS14及以上系统,遇到HTTP请求被拦截的情况,可以在iPhone的「设置」-「Safari浏览器」-「高级」-「网站数据」中清除对应站点数据,或者开启开发者模式后允许HTTP不安全连接。
内容的提问来源于stack exchange,提问作者Ben Clarke
相关产品推荐
相关产品推荐

