我是顫振的新手,并試圖整合顫振和火力。我創建了一個 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;
}}
main.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();
}
uj5u.com熱心網友回復:
您是否添加了這些行main.dart以確保 Firebase 在應用啟動之前啟動。
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(const ChatApp());
}
uj5u.com熱心網友回復:
您收到錯誤是因為您試圖在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);
如果變數不為空,這只會呼叫該.user屬性firebaseUser。
您更新的代碼應該是這樣的:
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;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/315571.html
上一篇:如何在顫振中創建鋸齒狀邊框
