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

Flutter Web项目无法连接Firestore,启动白屏报错求助

解决Flutter Web 3.7.0连接Firestore白屏及断言错误问题

核心问题分析

你遇到的断言错误与白屏,本质是Flutter版本、Firebase Flutter插件版本、Web端Firebase JS SDK版本三者不兼容,加上依赖配置不明确、初始化方式混乱导致的。Flutter 3.7.0属于较旧稳定版,无法兼容最新Firebase插件,必须锁定匹配的版本组合。


分步解决方案

1. 锁定兼容的Firebase依赖版本

修改pubspec.yaml,明确指定与Flutter 3.7.0兼容的插件版本(避免自动拉取不兼容的最新版本):

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^2.10.0  # 与你缓存的firebase_core_web-2.10.0版本匹配
  cloud_firestore: ^4.8.0  # 对应firebase_core 2.10.0的兼容版本

执行以下命令清理缓存并更新依赖:

flutter clean
flutter pub get

2. 统一Web端Firebase初始化方式

禁止混合CDN导入与Flutter插件初始化逻辑,按以下步骤配置:

  • 删除你手动添加的CDN导入代码
  • 使用flutterfire configure生成标准化配置:
    dart pub global activate flutterfire_cli
    flutterfire configure --project=你的Firebase项目ID
    
    该命令会自动生成lib/firebase_options.dart配置文件,并修改web/index.html插入与插件版本匹配的Firebase JS SDK脚本。

3. 修正main.dart初始化代码

替换原初始化逻辑,使用自动生成的配置文件完成Firebase初始化:

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';  // 引入自动生成的配置文件

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(const MyApp());
}

4. 验证并重新运行

执行命令启动Web应用:

flutter run -d chrome

若仍有问题,查看浏览器控制台的完整报错信息(你仅提供了断言错误开头,完整日志能定位更具体问题),同时确认:

  • Firebase项目已正确注册Web应用,且添加了本地测试域名localhost
  • Firestore规则允许测试访问(可临时设置为allow read, write: if true;)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 11:07:21