【问题标题】:My Flutter/Firebase app is showing no app has been configured yet我的 Flutter/Firebase 应用显示尚未配置任何应用
【发布时间】:2021-01-08 21:12:42
【问题描述】:

我正在 Flutter/Firebase 中制作应用程序,但在我的 Visual Studio 代码终端上遇到以下错误:-

Xcode build done.                                           522.2s
6.26.0 - [Firebase/Core][I-COR000005] No app has been configured yet.
6.26.0 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications 
proxy enabled, will swizzle remote notification receiver handlers. If you'd 
prefer to manually integrate Firebase Messaging, add 
"FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow 
the instructions at:
https://firebase.google.com/docs/cloud- 
messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.
Waiting for iPhone 11 to report its views...                         9ms
Syncing files to device iPhone 11...                               610ms

关于如何解决这个问题的任何想法......????

【问题讨论】:

  • 您在项目中添加了GoogleService-Info.plist 吗?

标签: ios firebase flutter visual-studio-code


【解决方案1】:

我解决了这个问题。如果您在 AppDelegate.swift 中使用 swift,请确保您已按该顺序添加以下内容:

FirebaseApp.configure() //add this before the code below
GeneratedPluginRegistrant.register(with: self)

如果您使用的是带有 Objective-c 的颤振,请将以下内容添加到您的 appdelgate.m 文件中:-

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[FIRApp configure]; //add this right after the above

【讨论】:

  • 好的。这是一个超级有趣(又名奇怪)的事情。我有两个项目连接到同一个 FireBase。一个不会构建,我使用了这个解决方案并且它工作。另一个没有 FirebaseApp.configure(),但它也可以。我确信有另一种方法可以做到这一点,当我弄清楚时我会报告。
  • flutter 更新到 2.0.1 后,这里开始发生同样的事情。这也对我有用。但仍然不明白为什么我必须更新 AppDelegate.swift 文件。感觉和@CurtEckhart 一样,你找到原因了吗?
  • (用于 swift)如下所述,您必须在顶部导入 firebase import Firebase
【解决方案2】:

这是另一种初始化 Firebase 的方法,它是通过编辑 main.dart 来完成的。

这可能是首选解决方案,因为它在您的所有应用程序小部件都初始化之前不会初始化 Firebase。我遇到了一些小部件无法工作的情况,因为它们对 Firebase 实例的引用为空。

WidgetsFlutterBinding.ensureInitialized(); 是进行类初始化所必需的。

虽然 Sai 给出的解决方案有效,但我怀疑由于一个微妙的初始化问题,它并不总是有效。

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

【讨论】:

  • 我可以确认,对 main.dart 进行此更改将正确初始化您的应用以连接到 Firebase。
  • 在颤振 2.1.0 上对我不起作用。如已接受的答案所述,必须编辑 AppDelegate.swift。
  • 当我为 AppDelegate.swift 和 main() 颤振添加时,我的也解决了
【解决方案3】:

加上FirebaseApp.configure(),别忘了import Firebase

AppDelegate.swift 文件应该这样开始:

import UIKit
import Firebase

【讨论】:

  • 你需要告诉它需要放在哪里,否则只有 iOS 开发人员会理解。
  • 他说的是iOS/Runner/AppDelegate.swift
  • 谢谢@elder,这救了我。
【解决方案4】:

我也收到“尚未配置应用程序”消息,但在通话后 await FirebaseMessaging.instance.requestPermission 并接受许可(IOS 需要用户许可),我仍然收到 FCM 的通知。在我的主要功能上,我已经添加了这些(用于新的 Dart 初始化)。

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

不再需要在 AppDelegate 中添加 'GoogleService-Info' 和 FirebaseApp.configure(),因为 FlutterFire 现在支持直接从 Dart 初始化! 新的 Dart 初始化文档在这里:https://firebase.flutter.dev/docs/overview/

【讨论】:

  • 您能进一步解释一下吗?答案不是很简洁。我正在使用新的 Dart 初始化,虽然我也收到了丢失的 GoogleServices 日志。
  • @BretHagen,我稍微编辑了我的答案。我的意思是,如果您从文档中进行新的 Dart 初始化,即使您收到此消息“尚未配置应用程序”,您也可以获得通知,此时此消息可能只是一个警告。 FlutterFire 文档在这里:firebase.flutter.dev/docs/overview
【解决方案5】:

在 AppDelegate 文件中

  1. 导入 Firebase
  2. 在 GeneratedPluginRegistrant.register(with: self) 上方添加 FirebaseApp.configure()

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 2018-12-01
    • 1970-01-01
    • 2016-09-16
    • 2022-12-30
    • 2017-01-17
    相关资源
    最近更新 更多