Flutter Web集成cloud_functions后Firebase Auth报错求助
解决Flutter Web Firebase Auth初始化错误问题
问题根源
你的问题主要来自两个方面:
- 手动添加的Firebase JS SDK脚本(8.6.1版本)与Flutter Firebase插件依赖的SDK版本不兼容,导致初始化冲突
- 移除
cloud_functions后项目缓存残留,未彻底清除旧依赖影响
解决方案步骤
1. 移除index.html中手动添加的Firebase脚本
直接删除你在index.html中插入的所有<script src="https://www.gstatic.com/firebasejs/8.6.1/..."></script>代码。Flutter的Firebase插件会根据依赖版本自动注入对应版本的JS SDK,手动添加旧版本会引发版本冲突。
2. 统一Firebase插件版本
当前依赖版本存在不匹配问题,建议将所有Firebase插件升级到兼容的稳定版本(以firebase_core为基准同步其他插件版本)。修改pubspec.yaml的依赖为:
dependencies: firebase_core: ^1.24.0 firebase_analytics: ^9.3.0 firebase_auth: ^3.6.2 cloud_firestore: ^3.5.0 cloud_functions: ^3.3.15 firebase_storage: ^10.3.10
执行flutter pub get更新依赖。
3. 清理项目缓存
执行以下命令彻底清除缓存,避免旧依赖残留:
flutter clean flutter pub get flutter pub upgrade
4. 确保初始化代码正确
确认初始化代码在应用启动时优先执行,且在使用Auth功能前等待初始化完成。例如在main.dart中:
import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // 等待Firebase初始化完成 await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp()); }
5. 验证Web端配置
检查web/index.html中是否存在Flutter自动注入的Firebase配置脚本(通常在<body>末尾),格式类似:
<script type="module"> import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js"; const firebaseConfig = { // 你的Firebase配置信息 }; const app = initializeApp(firebaseConfig); </script>
如果没有,重新运行flutter run -d chrome让Flutter自动生成。
完成以上步骤后,重新运行项目即可解决Auth初始化错误。
内容的提问来源于stack exchange,提问作者Toufik2001
相关产品推荐
相关产品推荐

