Flutter Web集成Firebase初始化时抛出Null类型错误求助
解决Flutter Web端Firebase初始化时的Null转Object错误
问题背景
创建新Flutter项目后,用flutterfire configure配置Firebase,初始化代码如下:
void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); runApp(const MyApp()); }
仅Web端抛出以下错误:
Exception has occurred. "Error: Expected a value of type 'Object', but got one of type 'Null' C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 266:49 throw_ C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 99:3 castError C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 452:10 cast C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 73:24 as packages/firebase_core_web/src/firebase_core_web.dart 85:20 get [_ignoredServiceScripts] packages/firebase_core_web/src/firebase_core_web.dart 136:28 _initializeCore ...(省略后续栈信息) "
环境版本:
- Flutter 3.3.10(stable通道)
firebase_core: ^2.4.0
解决方案
方案1:降级firebase_core版本到2.3.0
该错误是firebase_core: ^2.4.0版本在Web端存在的已知兼容性问题,修改pubspec.yaml中的依赖:
firebase_core: ^2.3.0
执行以下命令更新依赖:
flutter pub get
重新运行Web项目即可。
方案2:升级Flutter到更高稳定版本
如果不想降级依赖,可以尝试升级Flutter到3.7.x及以上的稳定版本,新版本对Firebase Web端的兼容性更好:
flutter upgrade
升级后重新执行flutter pub get并运行项目。
方案3:检查web/index.html中的Firebase脚本配置
确保web/index.html中正确引入Firebase的CDN脚本且配置信息完整,flutterfire configure生成的配置会自动添加,可手动确认:
在<body>标签内添加(替换为你的项目实际配置):
<script type="module"> import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js"; const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_AUTH_DOMAIN", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_STORAGE_BUCKET", messagingSenderId: "YOUR_MESSAGING_SENDER_ID", appId: "YOUR_APP_ID" }; const app = initializeApp(firebaseConfig); </script>
注意:若代码中已通过Firebase.initializeApp初始化,此处脚本仅需引入核心库,避免重复初始化。
内容的提问来源于stack exchange,提问作者vidhyesh
相关产品推荐
相关产品推荐

