Firebase Cloud Messaging не получает уведомления (iOS) - PullRequest
1 голос
/ 04 апреля 2020

Я пытаюсь использовать 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)")
}
...