真机无法连接Firebase Emulator问题咨询
Firebase Emulator真机无法连接排查方案
你已在firebase.json中将数据库模拟器绑定到局域网IP192.168.0.124,配置方向正确,可按以下步骤排查问题:
1. 基础网络校验
- 确保真机与运行模拟器的电脑连接同一局域网WIFI,未开启VPN、代理,且路由器未开启AP隔离功能
- 在真机浏览器中访问
http://192.168.0.124:4000(Emulator UI默认端口),如果无法打开说明局域网连通性异常,先排查路由器配置,或临时关闭电脑系统防火墙后重试 - 确认你填写的
192.168.0.124确实是运行模拟器的电脑的局域网IP,可通过电脑端执行ipconfig(Windows)或ifconfig(Mac/Linux)核对
2. 客户端代码配置
必须在项目的Firebase初始化逻辑中、所有数据库操作执行前,显式指定要连接的模拟器地址,不可依赖默认配置:
- Android端代码示例:
FirebaseDatabase.getInstance().useEmulator("192.168.0.124", 1234);
- iOS端代码示例:
FirebaseDatabase.database().useEmulator(withHost: "192.168.0.124", port: 1234)
- 跨平台框架可调用对应SDK的
useEmulator方法,参数保持IP和端口与你的firebase.json配置一致即可
注意:该配置仅在调试阶段使用,正式发布前务必删除
3. 模拟器启动配置
启动模拟器时添加--host 0.0.0.0参数,确保模拟器监听所有网卡的请求,避免仅绑定本地回环地址导致外部设备无法访问:
firebase emulators:start --host 0.0.0.0
如果仅需要启动数据库模拟器,可执行:
firebase emulators:start --only database --host 0.0.0.0
4. 平台权限适配
- Android 9及以上版本默认禁用明文HTTP请求,调试时可在AndroidManifest.xml的
application标签中添加android:usesCleartextTraffic="true"配置,正式发布时移除 - iOS 12及以上版本默认限制非HTTPS请求,需要在Info.plist中添加NSAppTransportSecurity例外,允许
192.168.0.124的HTTP请求加载
内容的提问来源于stack exchange,提问作者Jahangir Jadi
相关产品推荐
相关产品推荐

