ChatGPT解决这个技术问题 Extra ChatGPT

没有创建 Firebase 应用“[DEFAULT]” - 在 Flutter 和 Firebase 中调用 Firebase.initializeApp()

我正在构建一个 Flutter 应用程序并且我已经集成了 Firebase,但是当我单击一个按钮进行注册、登录或注销时,我不断收到这个错误。我见过其他人问过同样的问题,但似乎没有一个对我有用。我正在使用 Flutter 和 Android Studio。我该如何解决这个问题?

这是我的代码的摘录

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.red,
      body: Center(
        child: Container(
          child: RaisedButton(
            onPressed: () {
              FirebaseAuth.instance.signOut().then((value) {
                Navigator.pushReplacement(
                    context,
                    MaterialPageRoute(
                        builder: (context) =>
                            LoginScreen()));
              });
            },
            child: Text("Logout"),
          )
        )
      )
    );
  }
}

下面是抛出的异常

══╡ EXCEPTION CAUGHT BY GESTURE ╞═══════════════════════════════════════════════════════════════════
The following FirebaseException was thrown while handling a gesture:
[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()

When the exception was thrown, this was the stack:

#0      MethodChannelFirebase.app (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:118:5)
#1      Firebase.app (package:firebase_core/src/firebase.dart:52:41)
#2      FirebaseAuth.instance (package:firebase_auth/src/firebase_auth.dart:37:47)
#3      _HomeScreenState.build.<anonymous closure> (package:cosytok/screens/home.dart:20:28)
#4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:992:19)
#5      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1098:38)
#6      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:184:24)
#7      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:524:11)
#8      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:284:5)
#9      BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:219:7)
#10     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:477:9)
#11     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:78:12)
#12     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:124:9)
#13     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
#14     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:122:18)
#15     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:108:7)
#16     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:220:19)
#17     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:200:22)
#18     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:158:7)
#19     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:104:7)
#20     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:88:7)
#24     _invoke1 (dart:ui/hooks.dart:267:10)
#25     _dispatchPointerDataPacket (dart:ui/hooks.dart:176:5)
(elided 3 frames from dart:async)

Handler: "onTap"
Recognizer:
  TapGestureRecognizer#f0104
════════════════════════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gesture ═══════════════════════════════════════════════════════════════
The following FirebaseException was thrown while handling a gesture:
[core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()
您现在应该使用 Dart-only 方式来初始化 Firebase。

P
Peter Haddad

从 2020 年 8 月 17 日开始

所有 Firebase 版本都已更新,现在您必须在使用任何 Firebase 产品之前调用 Firebase.initializeApp(),例如:

首先,所有 Firebase 产品现在都依赖于 firebase_core 版本 (0.5.0+),因此您需要将其添加到 pubspec.yaml 文件中:

dependencies:
  flutter:
    sdk: flutter
  firebase_core : ^0.5.0
  # cloud_firestore: ^0.14.0 other firebase dependencies

然后您必须调用 Firebase.initializeApp()

第一个例子

import 'package:flutter/material.dart';

// Import the firebase_core plugin
import 'package:firebase_core/firebase_core.dart';

void main() {
  runApp(App());
}

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      // Initialize FlutterFire
      future: Firebase.initializeApp(),
      builder: (context, snapshot) {
        // Check for errors
        if (snapshot.hasError) {
          return SomethingWentWrong();
        }

        // Once complete, show your application
        if (snapshot.connectionState == ConnectionState.done) {
          return MyAwesomeApp();
        }

        // Otherwise, show something whilst waiting for initialization to complete
        return Loading();
      },
    );
  }
}

Firestore 的第二个示例:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: FirstRoute(title: 'First Route'),
    );
  }
}

class FirstRoute extends StatefulWidget {
  FirstRoute({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _FirstRouteState createState() => _FirstRouteState();
}

class _FirstRouteState extends State<FirstRoute> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("test"),
        ),
        body: FutureBuilder(
          future: getData(),
          builder: (context, AsyncSnapshot<DocumentSnapshot> snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              return Column(
                children: [
                  Container(
                    height: 27,
                    child: Text(
                      "Name: ${snapshot.data.data()['name']}",
                      overflow: TextOverflow.fade,
                      style: TextStyle(fontSize: 20),
                    ),
                  ),
                ],
              );
            } else if (snapshot.connectionState == ConnectionState.none) {
              return Text("No data");
            }
            return CircularProgressIndicator();
          },
        ));
  }

  Future<DocumentSnapshot> getData() async {
    await Firebase.initializeApp();
    return await FirebaseFirestore.instance
        .collection("users")
        .doc("docID")
        .get();
  }
}

第三个例子:

initState() 中对其进行初始化,然后调用将调用 build() 方法的 setState()

  @override
  void initState() {
    super.initState();
    Firebase.initializeApp().whenComplete(() { 
      print("completed");
      setState(() {});
    });
  }

第四个例子:

调用 WidgetsFlutterBinding.ensureInitialized(); 后在 main() 方法中对其进行初始化

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

注意:您只需调用一次 initializeApp()


第四个例子应该是它。只要记住添加异步。我想知道延迟是否明显。
是的,第 4 个示例是最好的,只是想展示所有方式,第二个也很好,因为您可以在从同一 FutureBuilder 中的 firestore 或实时数据库获取第一个数据之前进行初始化
谢谢,它使用#4工作。但是如果你按下“返回”按钮,当你返回应用程序时,它会说同样的事情“没有创建 Firebase 应用程序'[DEFAULT]' - 调用 Firebase.initializeApp()”,即使它在 main()
@MichaelDiCioccio 颤动框架使用小部件绑定能够与颤动引擎进行交互。当您调用 ensureInitislized 时,它会创建 Widgetbinding 的实例,并且由于 Firebase.initializeApp() 需要使用平台通道来调用本机,因此您需要初始化绑定。 api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/…(平台频道在颤振引擎中)
#4 似乎不适用于提供者(与最初的错误消息相同)
M
Muhammad Ashraf

添加到 pubspec.yaml firebase_core :添加到 main.dart import 'package:firebase_core/firebase_core.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized();等待 Firebase.initializeApp();运行应用程序(我的应用程序()); }


这些行将给出:lib/main.dart:6:9: Error: Getter not found: 'Firebase'。等待 Firebase.initializeApp(); ^^^^^^^^
我忘了导入 firebase_core。做过某事。现在:这些行将给出: E/flutter (24294): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: [core/no-app] No Firebase App '[DEFAULT]' has been创建 - 调用 Firebase.initializeApp()
它在此处 firebase.google.com/support/release-notes/android 表示:不再需要 Firebase Android 库 firebase-core。该 SDK 包括用于 Google Analytics 的 Firebase SDK。现在,要使用 Analytics 或推荐使用 Analytics 的产品(见下表),您需要显式添加 Analytics 依赖项:com.google.firebase:firebase-analytics:17.5.0 或 com.google.firebase:firebase -分析-ktx:17.5.0。
如果initializeApp会崩溃怎么办?应用程序不会启动。我没有发现任何关于这个可能的问题。
@BorisSalimov 因为 initializeApp() 是异步调用,所以即使失败,应用程序仍会启动
P
Peter Mortensen

如果您遵循 Peter's answer 并且仍然遇到相同的错误,请检查以确保 main 函数中的其他内容出现在 await Firebase.initializeApp() 调用之后,如下所示:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
  runApp(MyApp());
}

M
Muhammed Moussa

自 2017 年 8 月以来,所有 Firebase 服务都已更新,因此您必须先在 main 中调用 Firebase.initializeApp(),然后才能使用任何 Firebase 产品,例如:

如果你想在 Flutter 应用程序中使用 firebase_core 插件,那么在你的 pubspec.yaml 文件中添加 firebase_core 如下

dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^1.19.1

然后在您的应用中调用 Firebase.initializeApp():。与以下内容相同:

import 'package:firebase_core/firebase_core.dart';

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

P
Peter Mortensen

首先,添加这个依赖:

firebase_core :

第二:在项目主函数中,添加这两行并使函数异步:

void main() async {
    // These two lines
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();

    //
    runApp(MyApp());
}

现在您可以在项目中的任何文件或小部件中正常使用 Firebase。

FutureBuilder 小部件也可以使用,但您必须在每次要访问 Firebase 时添加它。


P
Peter Mortensen

Peter's answer 完美!!但是如果您的代码中仍然出现错误并遵循 Flutter Firebase codelab,请注意,这些教程截至 2020 年 8 月已过时且尚未更新。

您需要进行许多其他更改,例如:

用 .data() 替换 .data

用更新替换 updateData


P
Peter Mortensen

Flutter Web 与 Firebase

如果您将 Flutter Web 与 Firebase 一起使用,请确保您在 ./web/index.htmlbody 标记中安装了 SDK

  <script src="https://www.gstatic.com/firebasejs/8.2.9/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.2.9/firebase-analytics.js"></script>

此外,请确保您也使用 index.html 中的配置参数调用 firebase.initializeApp(...)

  <script>
    // Your web app's Firebase configuration
    // For Firebase JS SDK v7.20.0 and later, measurementId is optional
    var firebaseConfig = {
      apiKey: "AIz...",
      authDomain: "...",
      databaseURL: "https://<project-name>.firebaseio.com",
      projectId: "...",
      storageBucket: "<project-name>.appspot.com",
      messagingSenderId: "...",
      appId: "...",
      measurementId: "..."
    };
    firebase.initializeApp(firebaseConfig);
    firebase.analytics();
  </script>

最后按照 Peter Haddad's answer 中的说明配置 firebase:

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

这不是将敏感数据安全地放在 .html 中
@user7856586 在这种情况下,您会说敏感数据是什么?
抱歉,我的意思是我们还应该修复 Gcloud 上的规则,因为将裸数据存储在 html 文件中是不安全的。看here
C
CopsOnRoad

仅 Dart 初始化(推荐)

使用 CLI 在所有平台上初始化 Firebase。

无需添加任何本机代码。

无需下载任何 Google 服务文件。

安装 FlutterFire CLI dart pub global activate flutterfire_cli (可选)将以下行添加到 ~/.zshrc 文件并保存 export PATH="$PATH":"$HOME/.pub-cache/bin" 运行配置:flutterfire configure按回车键配置所有平台您现在应该有一个 lib/firebase_options.dart 文件。将此文件导入您的 main.dart 并使用 Firebase.initializeApp。导入“firebase_options.dart”; void main() async { WidgetsFlutterBinding.ensureInitialized(); // 这是您需要添加的最后一件事。等待 Firebase.initializeApp( 选项: DefaultFirebaseOptions.currentPlatform, );运行应用程序(...); }

迁移到仅 Dart 初始化:

如果您已经有一个现有的应用程序,您可以通过以下方式进行迁移。

Android:从 /android/app 中删除 google-services.json 文件:在 /android/build.gradle 文件中删除以下行 在 /android/ 中删除以下行应用程序/build.gradle 文件

/android/app 中删除 google-services.json 文件:

删除 /android/build.gradle 文件中的以下行

删除 /android/app/build.gradle 文件中的以下行

iOS 在 Xcode 中打开 /ios/Runner.xcworkspace 文件并从 Runner 中删除 GoogleService-Info.plist 文件。

macOS 在 Xcode 中打开 /macos/Runner.xcworkspace 文件并从 Runner 中删除 GoogleService-Info.plist 文件。

可以找到更多信息here


g
giftmarimo

您需要添加 await Firebase.initializeApp();,它是一个 Future。在运行 Firebase 函数的 dart 文件中执行此操作,如下所示:

import 'package:firebase_core/firebase_core.dart';
...

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

S
Sharon Atim

从 Flutter 2.8 版本开始,FlutterFire 现在可以在所有平台上使用 Firebase.initializeApp 函数从 Dart 初始化。有一种更简单、更快捷的方式来初始化 firebase 项目,而不是从 firebase 控制台下载 .json 和 .plist 文件并将它们放入您的 Flutter 项目文件夹中,这可能会导致多个警告。这是我多次遇到的问题,这就是我解决它的方法。

在 Firebase 控制台 steps here 中创建项目并安装 Firebase CLI here 后,请继续执行以下步骤:

如果您已经使用 flutterfire configure 配置了 Firebase 项目,则可以跳过第 1 步并跳到第 4 步。

从您的项目根终端,命令: $ flutterfire configure // 这需要 Firebase CLI 才能工作。按回车键或回车键选择 firebase 项目。插入捆绑包 ID。您可以通过右键单击 ios 文件夹 > 然后单击“在 xcode 中打开”来获取此信息。 Bundle Identifier 将出现在右侧的白色面板中,当出现提示时,您必须在终端中手动输入。

** 如果您已经安装了 firebase_core 插件,请继续执行第 5 步。 **

通过从项目根目录运行以下命令来安装最新版本的 firebase_core 插件: $ flutter pub add firebase_core // 添加到 pubspec.yaml 将导入添加到主文件: import 'package:firebase_core/firebase_core.dart'; // 导入 'firebase_options.dart'; // 生成的文件 更新您的主函数以使用此异步函数初始化 firebase:Future main() async { WidgetsFlutterBinding.ensureInitialized();等待 Firebase.initializeApp(选项:DefaultFirebaseOptions.currentPlatform); runApp(const YourAppName()); }

See the FlutterFire documentation for more information.


超清晰的解释
P
Peter Mortensen

如果您将应用程序留在主屏幕时仍然存在问题,您可以使用 Firebase 将其添加到任何 .dart 文件中:

class App extends StatelessWidget {

  final Future<FirebaseApp> _initialization = Firebase.initializeApp();

  @override
  Widget build(BuildContext context) {

或者在 StatefulWidget 的情况下:

import 'package:flutter/material.dart';

// Import the firebase_core plugin
import 'package:firebase_core/firebase_core.dart';

void main() {
  runApp(App());
}

class App extends StatefulWidget {
  _AppState createState() => _AppState();
}

class _AppState extends State<App> {
  // Set default `_initialized` and `_error` state to false
  bool _initialized = false;
  bool _error = false;

  // Define an async function to initialize FlutterFire
  void initializeFlutterFire() async {
    try {
      // Wait for Firebase to initialize and set `_initialized` state to true
      await Firebase.initializeApp();
      setState(() {
        _initialized = true;
      });
    } catch(e) {
      // Set `_error` state to true if Firebase initialization fails
      setState(() {
        _error = true;
      });
    }
  }

  @override
  void initState() {
    initializeFlutterFire();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    // Show error message if initialization failed
    if(_error) {
      return SomethingWentWrong();
    }

    // Show a loader until FlutterFire is initialized
    if (!_initialized) {
      return Loading();
    }

    return MyAwesomeApp();
  }
}

有关详细信息,请查看 this link


即使我执行与文档相同的程序,我也会收到错误消息。这是错误 No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp() 。我已经在有状态小部件中初始化了 Firebase。
f
fritz-playmaker

这是2022年初始化firebase的方式

首先,用这个链接安装 FlutterFire ==> Flutter Fire Installation Link

安装 FlutterFire 后,您需要在 lib/main.dart 文件中添加这些代码行

  import 'package:firebase_core/firebase_core.dart';
  import 'firebase_options.dart';  

然后编辑您的主要功能,如下所示

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

这可能会在未来发生变化,因此请参阅此链接以获取下面的最新实施参考

Initializing FlutterFire#


Z
Zahid Usman Cheema

我需要使用 FlutterFire cli 重新配置 Firebase 应用程序。

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

通过 NPM 安装 firebase-tool:npm install -g firebase-tools 安装 flutterfire cli:dart pub global activate flutterfire_cli 运行以下命令在项目中配置 firebase:flutterfire configure

按照上面的链接,初始化如下:

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

作为它的等待调用,该应用程序将显示初始屏幕并且 Firebase 可能无法初始化,因此我接下来继续使用另一个 FutureBuilder for home 屏幕,以确保在我使用 FirebaseAuth 之前初始化 Firebase 应用程序。

home: FutureBuilder(
          future: Firebase.initializeApp(),
          builder: (context, snapshot) {
            if (snapshot.hasError) {
              return Text(snapshot.error.toString(),
                  style: TextStyle(fontSize: 10));
            }

            if (snapshot.connectionState == ConnectionState.done) {
              return StreamBuilder(
                stream: FirebaseAuth.instance.authStateChanges(),
                builder: (context, snapshot) {
                  return snapshot.hasData ? Home() : AuthPage();
                },
              );
            } else {
              return Text('');
            }
          })

我已经更新了答案。谢谢
P
Peter Mortensen

就我而言,这是因为对于 Web 版本,您必须在 index.html 文件中手动添加内容,不仅是 .js 依赖项,还有配置。请参阅 Web Installation

我们往往会忘记,对于大多数东西来说,Flutter 是编译到目标的,而不需要更改任何特定于目标的东西,但在这种情况下,必须为每个目标添加配置。


R
Rahul Kushwaha

您可以使用 FutureBuilder 在 main.dart 文件中进行初始化,也可以像这样进行初始化。

 future: Firebase.initializeApp(),

看看这个例子。

void main() {
  runApp(App());
}

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      // Initialize FlutterFire
      future: Firebase.initializeApp(),
      builder: (context, snapshot) {
       return MaterialApp(
          debugShowCheckedModeBanner: false,
          title: 'NEWSAPI.org',
          home: SplashScreen(),
       
          routes: <String, WidgetBuilder>{
            SPLASH_SCREEN: (BuildContext context) => SplashScreen(),
          },);
      },
    );
  }
}

一个解释将按顺序进行。例如,想法/要点是什么?请通过 editing your answer 回复,而不是在评论中(没有“编辑:”、“更新:”或类似内容 - 答案应该看起来好像是今天写的)。
C
CrimsonPiiiik

将其用于颤振:

   const firebaseConfig = {

    apiKey: "",
    authDomain: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: "",
    appId: "",
    measurementId: ""
    };
   
  // Initialize Firebase
  firebase.initializeApp(firebaseConfig);
  firebase.getAnalytics(app);

而不是这个

   const firebaseConfig = {

    apiKey: "",
    authDomain: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: "",
    appId: "",
    measurementId: ""
    };

    // Initialize Firebase
    const app = initializeApp(firebaseConfig);
    const analytics = getAnalytics(app);

V
Vivek dusad

您需要在主函数中添加 await FirebaseApp.initializeApp() 记得在主函数中添加等待


d
dev.bojack

如果您已正确设置 Firebase,请不要忘记添加

等待

Firebase.initializeApp();

这主要是那个异常的问题。

等待 Firebase.initializeApp();


R
Rajesh Jr.

就我而言,我在现有项目中添加了 Web 支持。解决问题的一件事是,

web/index.html 文件中

所有 firebase sdk 导入verison9.6.6 更改为 8.10.0

片段

<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app-check.js"></script>  
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-firestore.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-storage.js"></script>
  <script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js"></script>
 <script>
  var firebaseConfig = {
   ....
   }

B
Beatle Refractor

我想发表评论。但是这个问题有很多线索。对于我的情况。

我在 Firebase 之前初始化了注入容器。需要检查层次结构。

Hive.init(directory.path);
  await Firebase.initializeApp();// before
  await di.init();

K
Kamesh Vadivel

使用 firebase 选项初始化

void main() async{
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform).catchError((e){
  print(" Error : ${e.toString()}");
});
}

像这样


您的答案可以通过额外的支持信息得到改进。请edit添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。您可以找到有关如何写出好答案的更多信息in the help center
V
Vikash Singh

如果您正在处理预先配置了 firebase_core 的项目,然后您尝试添加新包,则会出现该错误。

您必须先从 pubsec.yaml 中删除 firebase_core:,然后保存文件并通过 flutter pub add firebase_core 重新配置它,然后再通过 flutterfire configure

然后你可以添加任何新的包。


P
Peter Mortensen

对我来说,问题是我在没有“等待”的情况下对其进行了初始化:

void main() async {
    WidgetsFlutterBinding.ensureInitialized();
    Firebase.initializeApp();

正确的方法是:

void main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅