Firebase未正确初始化

dbf7pr2w  于 2022-11-25  发布在  其他
关注(0)|答案(7)|浏览(264)

所以,我想包括firebase到我的Flutter应用程序,它的工作正常的android,但当我启动它在我的ios模拟器它总是会给我这个错误
[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有同样的问题吗?或者我做错了什么?

1rhkuytd

1rhkuytd1#

所以对于其他人得到这个错误,我自己解决了,对于IOS,行

Firebase.initializeApp()

它需要一个选项:

Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform)

有关以下说明,请访问此链接:
https://firebase.flutter.dev/docs/cli
希望这对大家有帮助

2guxujil

2guxujil2#

1.如果系统中未安装Firebase CLI,请安装它。
1.接下来,通过运行以下命令安装FlutterFire CLI或:dart pub global activate flutterfire_cli。安装后,flutterfire命令将在全局范围内可用。
1.运行终端flutter项目文件夹中flutterfire configure
1.选择一个Firebase项目来配置Flutter应用程序,
1.选择/插入Android应用ID和捆绑ID,当它询问你时,你想使用。
1.并获取firebase_选项. dart。
1.在主.dart文件中导入firebase_options. dart。
1.在void main()中使用以下代码。

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

ryoqjall3#

我遇到了同样的问题。我的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();
  }
6tdlim6h

6tdlim6h4#

在我的例子中,我没有按照firebase的指令添加代码行。 从开始到结束都遵循firebase文档中的说明。

gywdnpxw

gywdnpxw5#

我在我的Flutter应用程序中遇到过同样的问题,当运行在xcode/ ios上时。下面是我是如何解决的。
1.从firebase帐户下载GoogleService-Info.plist
1.将文件添加到Runner,如下所示,然后从下载文件夹中选择GoogleService-Info.plist

1.重新运行项目,它将工作

0yg35tkg

0yg35tkg6#

在我的例子中,我忘记添加await,因为它返回Future。
先前版本:

Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );

然后

await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
vom3gejh

vom3gejh7#

下面是复制粘贴的完整功能。
main函数转换为:

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  runApp(const MyApp());
}

相关问题