firebase - Firebase.initializeApp() 给出错误:空值检查运算符用于空值
问题描述
运行这个
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
void main() async {
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: ThePage(),
);
}
}
class ThePage extends StatelessWidget {
const ThePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Scaffold(
);
}
}
正在给空值检查运算符使用空值并指出行Firebase.initializeApp()
。我也试过flutter clean
了。
以及堆栈跟踪中的错误
E/flutter (31894): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Null check operator used on a null value
E/flutter (31894): #0 MethodChannel.binaryMessenger
package:flutter/…/services/platform_channel.dart:142
E/flutter (31894): #1 MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:148
E/flutter (31894): #2 MethodChannel.invokeMethod
package:flutter/…/services/platform_channel.dart:331
E/flutter (31894): #3 MethodChannel.invokeListMethod
package:flutter/…/services/platform_channel.dart:344
E/flutter (31894): #4 MethodChannelFirebase._initializeCore
package:firebase_core_platform_interface/…/method_channel/method_channel_firebase.dart:30
E/flutter (31894): #5 MethodChannelFirebase.initializeApp
package:firebase_core_platform_interface/…/method_channel/method_channel_firebase.dart:77
E/flutter (31894): #6 Firebase.initializeApp
package:firebase_core/src/firebase.dart:41
E/flutter (31894): #7 main
package:firebasetests/main.dart:5
E/flutter (31894): #8 _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:142:25)
E/flutter (31894): #9 _rootRun (dart:async/zone.dart:1354:13)
E/flutter (31894): #10 _CustomZone.run (dart:async/zone.dart:1258:19)
E/flutter (31894): #11 _runZoned (dart:async/zone.dart:1789:10)
E/flutter (31894): #12 runZonedGuarded (dart:async/zone.dart:1777:12)
E/flutter (31894): #13 _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:138:5)
E/flutter (31894): #14 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:283:19)
E/flutter (31894): #15 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
这是错误的堆栈跟踪,Firebase.initializeApp()
在 main 中删除后它运行良好。
解决方案
您应该WidgetsFlutterBinding.ensureInitialized();
在 main 函数中添加:
void main() async {
WidgetsFlutterBinding.ensureInitialized(); // Add this
await Firebase.initializeApp();
runApp(MyApp());
}
对于 Firebase 初始化,需要使用 Flutter Platform Channels 访问本机代码。为此,您需要确保已初始化 Flutter 引擎绑定。
推荐阅读
- javascript - `require()` 的基本路径
- c# - 如何实现像圆圈一样的导航?
- automated-tests - 万一 cypress 找到路径并被 not.exist 错误卡住
- java - 在 SpringBoot 应用程序中使用单向 @ManyToOne 关系更新实体时出现问题
- python - Python中基于类别的测验问题数量
- flutter - 如何在不使用 ffmpeg_kit_flutter 的情况下向视频添加音频?
- delphi-10.4-sydney - 本机 IDE 调用堆栈窗口在崩溃时始终为空
- sql - 将列更新为重复
- javascript - DataTables - 高级搜索/列过滤器?
- firebase - 如何在 Firestore 数据库中建模这种情况?