Я пытаюсь использовать Firebase Notification Composer, чтобы отправить тестовое уведомление на мое устройство. Я получаю токен FCM и печатаю его на своей консоли, а затем пытаюсь отправить уведомление на этот токен.
Вот что я проверил:
1) Я нахожусь на iOS 12.4.1
2) Я назначаю делегата обмена сообщениями
3) Я получаю токен FCM от метода делегата
4) Я проверил, что уведомления включаются через печать на консоль, и когда мне предложили разрешить уведомления, я нажал кнопку разрешить
5) Я убедился, что в настройках проекта Firebase загружен ключ авторизации APN с правильными TeamID и KeyID
6) Метод делегата willPresentNotifications не вызывается при отправке тестового сообщения
7) Я пробовал с включенным / отключенным Swizzling, ни один не работает
8) Нет ошибки в отладке
Вот код:
import UIKit
import Firebase
import UserNotifications
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate, MessagingDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UITabBar.appearance().barTintColor = UIColor(named: "Splish")!
UINavigationBar.appearance().barTintColor = UIColor(named: "Splish")!
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
FirebaseApp.configure()
Messaging.messaging().delegate = self
UNUserNotificationCenter.current()
.requestAuthorization(options: [.alert, .sound, .badge]) {granted, error in
print("Permission granted: \(granted)")
}
UNUserNotificationCenter.current().delegate = self
application.registerForRemoteNotifications()
return true
}
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
print("FCM Token Is: \(fcmToken)")
}
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
print("Token is: \(deviceToken)")
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("Error is \(error)")
}