Firebase 未正确初始化

Mor*_*itz 5 ios firebase flutter

所以,我想将 firebase 包含到我的 Flutter 应用程序中,它在 Android 上运行良好,但是当我在 ios 模拟器上启动它时,它总是会给我这个错误

[VERBOSE-2:ui_dart_state.cc(209)] 未处理的异常:[核心/未初始化] Firebase 尚未正确初始化。通常这意味着您在调用之前尝试使用 Firebase 服务Firebase.initializeApp。查看文档以获取更多信息:https ://firebase.flutter.dev/docs/overview#initialization

我的 google-service 文件位于正确的目录中,我按照教程将 main() 编辑为:

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

IOS 有没有人遇到同样的问题,还是我做错了什么?

Mor*_*itz 15

因此,对于其他遇到此错误的人,我自己解决了这个问题,对于 IOS,该行

  Firebase.initializeApp()
Run Code Online (Sandbox Code Playgroud)

它需要一个选项:

Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform)
Run Code Online (Sandbox Code Playgroud)

为此,请按照此链接上的说明进行操作:

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

希望对任何人有帮助


ViK*_*yas 8

  1. 如果您的系统中未安装Firebase CLI ,请安装它。
  2. 接下来,安装FlutterFire CLI或运行以下命令:dart pub global activate flutterfire_cli。安装后,flutterfire 命令将在全局可用。
  3. flutterfire configure在终端的 flutter 项目文件夹中运行,
  4. 选择一个 Firebase 项目来配置您的 Flutter 应用程序,
  5. 当它询问时,选择/插入您想要使用的 Android 应用程序 ID 和捆绑包 ID。
  6. 并获取 firebase_options.dart。
  7. 在 main.dart 文件中导入 firebase_options.dart。
  8. 在 void main() 中使用以下代码。
        WidgetsFlutterBinding.ensureInitialized();
         如果(平台.isIOS){
         等待 Firebase.initializeApp(
          选项:DefaultFirebaseOptions.currentPlatform,
         );
           } 别的 {
             等待 Firebase.initializeApp();
             }
        运行应用程序(
        const MaterialApp(
        主页:我的应用程序(),
        ),
      );


Sha*_*put 8

我遇到了同样的问题。我的 Android 应用程序工作正常,但是当使用 IOS 应用程序时,它会抛出此类异常。你可以使用@Viki的答案,如果它不适合你,请确保你已经GoogleServices-info.plist在你的ios项目中添加了文件。如果它不能解决您的问题,请使用此代码

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();
  }
Run Code Online (Sandbox Code Playgroud)


小智 6

当我在 xcode/ios 上运行时,我的 flutter 应用程序也遇到了同样的问题。这是我解决的方法。

  1. 从 firebase 帐户下载 GoogleService-Info.plist
  2. 将文件添加到 Runner,如下所示,然后从下载文件夹中选择 GoogleService-Info.plist

在此输入图像描述

  1. 重新运行项目,就可以了