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

Flutter跨平台应用连接Firebase卡在initializeApp()报错求助

解决Flutter Web中Firebase初始化断言失败问题

从报错信息来看,问题出在web平台的Firebase初始化环节,firebase_core_web库在断言检查时失败,通常是因为web端的Firebase配置缺失或不正确。以下是具体的排查和解决步骤:

1. 补全Web平台的Firebase配置

你可能只配置了Android端的google_services.json,但web平台需要单独在web/index.html中添加Firebase JS SDK和项目配置:

  • 打开Firebase控制台,进入你的项目 → 项目设置 → 向下滚动到"SDK设置和配置" → 选择"Web"平台(未添加过则先新增)
  • 复制生成的配置代码,粘贴到web/index.html的<head>标签内,示例如下:
<head>
  <!-- 保留原有head内容 -->
  <!-- 添加Firebase JS SDK -->
  <script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js"></script>
  <script>
    // 替换为你的Firebase项目实际配置
    const firebaseConfig = {
      apiKey: "你的API_KEY",
      authDomain: "你的AUTH_DOMAIN",
      projectId: "你的PROJECT_ID",
      storageBucket: "你的STORAGE_BUCKET",
      messagingSenderId: "你的SENDER_ID",
      appId: "你的APP_ID",
      measurementId: "你的MEASUREMENT_ID"
    };
    // 初始化Web端Firebase
    firebase.initializeApp(firebaseConfig);
  </script>
</head>

2. 优化初始化代码并添加错误捕获

修改main.dart中的初始化逻辑,增加异常捕获以获取更详细的错误信息:

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'features/auth/welcome_screen.dart';

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  try {
    await Firebase.initializeApp();
    print("Firebase 初始化成功");
  } catch (e, stackTrace) {
    print("Firebase 初始化失败: $e");
    print(stackTrace);
  }
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'UniCompanion',
      debugShowCheckedModeBanner: false,
      home: WelcomeScreen(),
    );
  }
}

3. 验证依赖版本兼容性

你的依赖版本firebase_core: ^2.11.0与firebase_core_web: ^2.4.0是兼容的,但建议执行以下命令确保所有依赖同步:

flutter pub upgrade

4. 清理缓存并重新构建

执行以下命令清理旧构建缓存,避免配置未生效:

flutter clean
flutter pub get

之后重新运行web项目:

flutter run -d chrome

问题根源说明

Web平台的Firebase初始化不依赖google_services.json,而是通过index.html中的JS配置完成。如果缺失这段配置,firebase_core_web在初始化时无法获取必要的项目信息,就会触发断言失败错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:37:41