Я делаю кое-что с Firebase и Cloud Messaging.
И проблема в том, что мне нужно вызвать application.registerForRemoteNotifications () ПЕРЕД FirebaseApp.configure ().Я читал, что это должно решить мою проблему.
Я работаю с проектом, полученным от работодателя, и FirebaseApp.configure () называется так:
override init() {
super.init()
FirebaseApp.configure()
}
Я не знаюпочему это так.
И application.registerForRemoteNotifications () вызывается в приложении (didFinishLaunchingWithOptions).Вот что у меня есть:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// FirebaseApp.configure()
GMSPlacesClient.provideAPIKey("AIzaSyCWMU53OSR4zO28i9e2BsASnda3X1TAS2Y")
GMSServices.provideAPIKey("AIzaSyCWMU53OSR4zO28i9e2BsASnda3X1TAS2Y")
UIApplication.shared.setStatusBarStyle(UIStatusBarStyle.lightContent, animated: true)
UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor:UIColor.clear], for: .normal)
UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor:UIColor.clear], for: .selected)
print("Token is ", Messaging.messaging().fcmToken)
Thread.sleep(forTimeInterval: 1.0)
if #available(iOS 10, *) {
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
Messaging.messaging().delegate = self
UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .sound, .alert], completionHandler: { (granted, err) in
// application.registerForRemoteNotifications()
})
} else {
let notificationSettings = UIUserNotificationSettings(types: [.badge, .alert, .sound], categories: nil)
UIApplication.shared.registerUserNotificationSettings(notificationSettings)
UIApplication.shared.registerForRemoteNotifications()
}
application.registerForRemoteNotifications()
return true
}
И проблема в , когда я пытаюсь поставить FirebaseApp.configure()
в начале application(didFinishLaunchingWithOptions)
Я получаю
Поток 1: ошибка сигнала SIGABRT.
Из консоли я получаю :
Завершение приложения из-за необработанного исключения 'NSInternalInconsistencyException', причина: 'Экземпляр FIRApp по умолчанию должен быть настроен до инициализации FIRAuthinstance по умолчанию.Один из способов убедиться, что это вызов [FIRApp configure];
, вызывается в application:didFinishLaunchingWithOptions:
. '
Я не могу понять причину.