簡體   English   中英

Firebase 未正確初始化

[英]Firebase is not getting initialized right

So, I wanted to include firebase into my Flutter App, it works fine for android but when I start it on my ios emulator it will always give me this error

[VERBOSE-2:ui_dart_state.cc(209)] 未處理的異常:[core/not-initialized] Firebase 尚未正確初始化。 通常這意味着您在調用Firebase.initializeApp之前嘗試使用 Firebase 服務。 查看文檔以獲取更多信息: https://firebase.flutter.dev/docs/overview#initialization

我在正確的目錄中有 google-service 文件,我按照教程並將我的 main() 編輯為:

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

有人與 IOS 有同樣的問題,還是我做錯了什么?

因此,對於其他遇到此錯誤的人,我自己想通了,對於 IOS,行

  Firebase.initializeApp()

它需要一個選項:

Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform)

為此,請按照此鏈接上的說明進行操作:

https://firebase.flutter.dev/docs/cli

希望對任何人都有幫助

  1. 如果系統中未安裝Firebase CLI ,請安裝它。
  2. 接下來,安裝FlutterFire CLI或運行以下命令: dart pub global activate flutterfire_cli 安裝后,flutterfire 命令將全局可用。
  3. 在終端的 flutter 項目文件夾中運行flutterfire configure
  4. Select 一個 Firebase 項目來配置您的 Flutter 應用程序,
  5. 選擇/插入 android 應用程序 ID 和捆綁 ID,您想在詢問時使用。
  6. 並獲取 firebase_options.dart。
  7. 在main.dart文件中導入firebase_options.dart。
  8. 在 void main() 中使用以下代碼。

        WidgetsFlutterBinding.ensureInitialized();
         if (Platform.isIOS) {
         await Firebase.initializeApp(
          options: DefaultFirebaseOptions.currentPlatform,
         );
           } else {
             await Firebase.initializeApp();
             }
        runApp(
        const MaterialApp(
        home: MyApp(),
        ),
      );

我遇到了同樣的問題。 我的 Android 應用程序運行良好,但在使用 IOS 應用程序時會拋出此類異常。 您可以使用@Viki 的答案,如果它不適合您,請確保您在 ios 項目中添加了GoogleServices-info.plist文件。 如果它不能解決您的問題,請使用此代碼

if (Platform.isIOS) {
    await Firebase.initializeApp(
        options: FirebaseOptions(
            apiKey: "your api key Found in GoogleService-info.plist",
            appId: "Your app id found in Firebase",
            messagingSenderId: "Your Sender id found in Firebase",
            projectId: "Your Project id found in Firebase"));
  } else {
    await Firebase.initializeApp();
  }

就我而言,我沒有根據 firebase 的說明添加代碼行。 簡單的解決方法是從頭到尾遵循 firebase 文檔中的說明。

在此處輸入圖像描述

在 xcode/ios 上運行時,我在 flutter 應用程序中遇到了同樣的問題。 這是我解決的方法。

  1. 從 firebase 帳號下載 GoogleService-Info.plist
  2. 像下面這樣將文件添加到 Runner 並從下載文件夾中選擇 GoogleService-Info.plist

在此處輸入圖像描述

  1. 重新運行項目,它會工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM