默认的 Firebase 应用尚未配置,但 FirebaseApp.configure() 已添加到 appdelegate 的 didFinishLaunchingWithOptions 方法中



我正在尝试在我的ios应用程序上配置firebase云消息。根据Firebase文档的说明,我添加了这样的Firebase配置(appdelegate.swift(

func应用程序(_application:UIApplication,didFinishLaunchingWithOptions启动选项:[UIApplication.LaunchOptionsKey:Any]?(->Bool{IQKeyboardManager.shared.enable=真

if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self

let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: { _, _ in }
)
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
Messaging.messaging().isAutoInitEnabled = true
Messaging.messaging().delegate = self
Messaging.messaging().token { token, error in
if let error = error {
print("Error fetching FCM registration token: (error)")
} else if let token = token {
self.fcmId = token
print("n My FCM registration token: (token) n")
}
}
FirebaseApp.configure()
//For check update
Siren.shared.wail()
if UserDefaults.standard.value(forKey: "login") as? String == "yes" {

let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "MainViewController") as! MainViewController
let navigationController = UINavigationController(rootViewController: nextViewController)
let appdelegate = UIApplication.shared.delegate as! AppDelegate
appdelegate.window!.rootViewController = navigationController
self.window?.makeKeyAndVisible()

}else{

let mainStoryboardIpad : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let initialViewControlleripad : UIViewController = mainStoryboardIpad.instantiateViewController(withIdentifier: "goToLogin") as! LoginViewController
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = initialViewControlleripad
self.window?.makeKeyAndVisible()
}
return true

}

当我在iPhone 6上运行该应用程序时,我得到了。

[Firebase/Core][I-COR000003]默认的Firebase应用程序尚未配置。将FirebaseApp.configure()添加到应用程序初始化中。这可以在App Delegate的应用程序中完成(_:didFinishLaunchingWithOptions:((or the@main`结构在SwiftUI中的初始值设定项(。

FirebaseApp.configure()移到顶部,因为在调用任何Firebase方法之前都应该首先调用它。

我知道这是一篇旧文章,但看起来还没有合适的解决方案。

有时,仅仅把FirebaseApp.configure()放在didFinishLaunchingWithOptions的顶部是没有帮助的。

只需将FirebaseApp.configure()放在AppDelegate的init()中即可。

因此,您可以确保首先配置Firebase。

class AppDelegate: UIResponder, UIApplicationDelegate {
override init() {
FirebaseApp.configure()
}

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}

}

我知道这是一篇旧帖子,但我写这篇文章是因为我也在努力。

我在视图中有一个init(),它作为从FireBase获取数据的默认视图打开,基本上,它在调用FireBase配置函数之前调用了init,并导致了该错误。

在我的案例中,我使用GeoFire作为CocoaPods依赖项,而其他Firebase库是使用Swift包管理器添加的。将所有内容转移到CocoaPods解决了这个问题。

我希望GeoFire与Firebase库一起在Swift包管理器上工作。我不得不坚持使用CocoaPods。

相关内容

  • 没有找到相关文章

最新更新