You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-native-firebase v21.6.1 Auth模拟器使用异常:调用创建用户接口时出现网络请求失败错误

react-native-firebase v21.6.1 Auth模拟器使用异常:调用创建用户接口时出现网络请求失败错误

我仔细看了你的问题:Firestore和Functions模拟器都能正常连接使用,唯独Auth模块调用createUserWithEmailAndPassword时抛出网络错误,而且模拟器连接状态显示成功——这个问题大概率是几个细节配置导致的,我给你梳理下解决思路:

1. 优先排查:Auth模拟器的useEmulator调用格式错误

注意看你的app.js代码,Firestore和Functions的useEmulator都是传入主机地址+端口号两个参数,但Auth模块你传的是完整的HTTP URL:

// 你的代码(错误格式)
auth().useEmulator('http://localhost:9099');

而@react-native-firebase/auth的useEmulator方法参数格式和另外两个模块完全一致,需要分开传主机和端口,正确写法是:

// 修改后的代码
auth().useEmulator('localhost', 9099);

这个格式错误很容易被忽略——模拟器连接状态会显示成功,但实际发起用户创建请求时,会因为参数解析异常导致网络请求失败。

2. 验证iOS模拟器与Auth模拟器的网络连通性

iOS模拟器里的localhost理论上会映射到你的电脑主机,但偶尔会有网络隔离问题。你可以先在模拟器的Safari中访问 http://localhost:9099:

  • 如果能看到Firebase Auth模拟器的欢迎页面,说明网络连通正常;
  • 如果打不开,试试用你电脑的局域网IP地址代替localhost(比如192.168.1.100),同时确保电脑防火墙没有拦截9099端口的请求。

3. 检查iOS ATS配置(非HTTPS请求限制)

iOS默认会阻止非HTTPS的网络请求,虽然localhost在ATS(App Transport Security)中默认允许,但开发构建的配置可能存在遗漏。你可以在app.json的ios.infoPlist中添加以下配置,确保允许本地网络请求:

"ios": {
  "infoPlist": {
    "NSAllowsLocalNetworking": true,
    "NSAppTransportSecurity": {
      "NSAllowsArbitraryLoads": false,
      "NSExceptionDomains": {
        "localhost": {
          "NSIncludesSubdomains": true,
          "NSAllowsArbitraryLoads": true
        }
      }
    }
  }
}

添加完成后,重新运行npx expo run:ios生成新的开发构建。

4. 确认Auth模拟器的运行状态

最后再检查启动Firebase模拟器的终端输出,确认Auth模拟器处于running状态且监听9099端口。有时候可能因为端口冲突,模拟器UI显示连接成功但实际服务并未正常启动。

你可以先尝试修改Auth模拟器的调用格式,这个是最可能解决问题的点。如果还是不行,再逐步排查后面的配置项。

备注:内容来源于stack exchange,提问作者benwl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 08:20:30