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

Flutter接入Firebase次要应用Firestore时报[core/no-app]错误如何解决

问题原因

你初始化Firebase时仅创建了自定义命名的次要应用,没有初始化默认的[DEFAULT]应用。FlutterFire的部分底层逻辑(包括Firestore实例的初始化链路)默认要求必须存在一个已完成初始化的默认Firebase应用,哪怕你实际业务只用次要应用也需要先初始化默认应用,否则就会抛出[core/no-app]报错。

解决方法

根据你的实际使用场景二选一即可:

场景1:仅使用yostest2这一个Firebase项目

直接删除初始化时的name参数,将该项目初始化为默认应用即可,无需再额外创建次要应用实例。
修改后的main函数代码:

void main() async {
  // Avoid errors caused by flutter upgrade.
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp(
    // 删掉name参数,默认初始化为[DEFAULT]应用
    options: FirebaseOptions(
      apiKey: "AIzaSy...",
      appId: "1:68080...",
      messagingSenderId: "",
      projectId: "yostest2-xxxxx",
      storageBucket: "yostest2-xxxxx.appspot.com",
      databaseURL: 'https://yostest2-xxxxx.firebaseio.com',
    ),
  );

  runApp(const MyApp());
}

对应业务代码可以简化为:

void _incrementCounter() async {
    await FirebaseFirestore.instance
        .collection("yos")
        .add({"timestamp": FieldValue.serverTimestamp()});

    setState(() {
      _counter++;
    });
  }

场景2:需要同时使用默认Firebase项目+这个次要yostest2项目

先完成默认应用的初始化,再初始化自定义命名的次要应用即可,原有业务逻辑不需要修改。
修改后的main函数代码:

void main() async {
  // Avoid errors caused by flutter upgrade.
  WidgetsFlutterBinding.ensureInitialized();

  // 先初始化默认[DEFAULT]应用,填入默认项目的Firebase配置
  await Firebase.initializeApp(
    options: FirebaseOptions(
      apiKey: "默认项目apiKey",
      appId: "默认项目appId",
      messagingSenderId: "默认项目senderId",
      projectId: "默认项目projectId",
      // 其他参数按需配置
    ),
  );

  // 再初始化次名命名应用
  await Firebase.initializeApp(
    name: "yostest2-xxxxx",
    options: FirebaseOptions(
      apiKey: "AIzaSy...",
      appId: "1:68080...",
      messagingSenderId: "",
      projectId: "yostest2-xxxxx",
      storageBucket: "yostest2-xxxxx.appspot.com",
      databaseURL: 'https://yostest2-xxxxx.firebaseio.com',
    ),
  );

  runApp(const MyApp());
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:36:03