颤振火力基地错误 发生异常。LateError (LateInitializationError: Local 'firebaseUser'尚未初始化。



我是新的扑动和尝试整合扑动和firebase。我创建了一个flutter项目,并添加了android和ios应用程序,然后将文件下载到flutter应用程序。但是当我运行项目时,我得到以下错误

Exception has occurred.LateError (LateInitializationError: Local 'firebaseUser' has not been initialized.)

原因可能是什么?以下是

的代码行
Future<bool> signInAnonymously() async {
if (Configurations.shared.isThisVersionTestedInAppStore ||
Utils.isInDebugMode!) {
late UserCredential firebaseUser;
try {
firebaseUser = await FirebaseAuth.instance.signInAnonymously();
} catch (e) {
AppLogger.error(e);
}
return didLogInSuccessfully(withUser: firebaseUser.user);
} else {
return false;
}}

主要。Dart文件内容

Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await Configurations.shared.init();
await Repository.shared.init();
runApp(Configurations.shared.getMainAppWidget());
runTestScripts();
}
void runTestScripts() {
Utils.test();
Synchronizer.test();
Localized.test();
}

您得到错误,因为您试图使用firebaseUser变量而没有初始化它。

这是因为firebaseUser没有得到下面一行的值:

firebaseUser = await FirebaseAuth.instance.signInAnonymously();

由于firebaseUser变量可以为空,您可以将其从late变量更改为nullable变量,如下所示:

改变:

late UserCredential firebaseUser;

:

UserCredential? firebaseUser;

和更新你的返回语句:

return didLogInSuccessfully(withUser: firebaseUser.user);

:

return didLogInSuccessfully(withUser: firebaseUser?.user);

如果firebaseUser变量不为空,则只调用.user属性。

更新后的代码应该是这样的:

Future<bool> signInAnonymously() async {
if (Configurations.shared.isThisVersionTestedInAppStore ||
Utils.isInDebugMode!) {
UserCredential? firebaseUser;
try {
firebaseUser = await FirebaseAuth.instance.signInAnonymously();
} catch (e) {
AppLogger.error(e);
}
return didLogInSuccessfully(withUser: firebaseUser?.user);
} else {
return false;
}
}

您是否在main.dart添加了这些行以确保firebase在应用程序启动之前启动?

Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(const ChatApp());
}

相关内容

最新更新