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

Firebase Firestore模拟器提示“服务当前不可用”问题求助

问题排查:Flutter Firebase Firestore模拟器连接失败(cloud_firestore/unavailable)

核心问题分析

你的Auth模拟器可正常工作,但Firestore调用抛出cloud_firestore/unavailable异常,结合提供的代码和日志,主要排查方向集中在重复配置冲突、客户端访问地址错误、模拟器运行状态这几个点。

具体解决方案

1. 移除重复的Firestore配置代码

你的初始化代码中同时调用了useFirestoreEmulator()和手动设置FirebaseFirestore.instance.settings,这会导致配置冲突。useFirestoreEmulator()方法已经自动完成了host、ssl禁用等模拟器相关配置,无需重复设置。

修改后的初始化代码:

Future initializeApp() async {
    await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
    FirebaseAuth.instance.useAuthEmulator("0.0.0.0", 9099);
    FirebaseFunctions.instance.useFunctionsEmulator("0.0.0.0", 5001);
    FirebaseStorage.instance.bucket = 'default-bucket';
    FirebaseStorage.instance.useStorageEmulator("0.0.0.0", 9199);
    // 仅保留useFirestoreEmulator配置,移除settings设置
    FirebaseFirestore.instance.useFirestoreEmulator("0.0.0.0", 8080);
  }

2. 修正客户端访问地址(针对移动端模拟器)

如果你的Flutter应用运行在iOS/Android模拟器上,0.0.0.0无法正确指向主机的Firebase模拟器,需要替换为对应地址:

  • Android模拟器:使用10.0.2.2(官方指定的主机localhost映射地址)
  • iOS模拟器:直接使用localhost或者主机的局域网IP地址

示例(Android模拟器适配):

FirebaseFirestore.instance.useFirestoreEmulator("10.0.2.2", 8080);
FirebaseAuth.instance.useAuthEmulator("10.0.2.2", 9099);
FirebaseFunctions.instance.useFunctionsEmulator("10.0.2.2", 5001);
FirebaseStorage.instance.useStorageEmulator("10.0.2.2", 9199);

3. 确认Firestore模拟器的运行状态

从你的firestore-debug.log末尾看到*** shutting down gRPC server since JVM is shutting down,说明Firestore模拟器可能在调用前已经停止运行:

  • 重新执行firebase emulators:start,确保所有模拟器(包括Firestore)持续运行,无退出提示
  • 在浏览器访问http://localhost:8080,若返回Firebase Emulator Suite页面,说明模拟器正常运行
  • 检查端口8080是否被其他程序占用,若占用则修改firebase.json中的Firestore端口,并同步更新Flutter代码中的端口号

4. 验证Firestore规则与初始化顺序

  • 检查firestore.rules文件,确保没有设置阻止访问的严格规则(虽然报错是服务不可用,但极端规则可能导致类似表现)
  • 确保所有Firestore操作都在initializeApp()完成后执行,比如使用await initializeApp()后再调用读写方法

内容的提问来源于stack exchange,提问作者Queen Ellery

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:40:25