如何在 Swift 3 中处理 UNUserNotificationCenter 和 FIRMessaging w/Firebase 的委托?

How to deal with delegation of UNUserNotificationCenter and FIRMessaging w/ Firebase in Swift 3?

我正在尝试使用 Firebase 在我的应用程序中实现推送通知,但是在按照他们的文档进行操作时,我必须添加以下代码行:

        if #available(iOS 10.0, *) {
        let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
        UNUserNotificationCenter.current().requestAuthorization(options: authOptions, completionHandler: {_, _ in})

        UNUserNotificationCenter.current().delegate = self
        FIRMessaging.messaging().remoteMessageDelegate = self
    } else {
        let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
        application.registerUserNotificationSettings(settings)
    }

添加此代码后,应用程序将无法编译,并且会向我抛出一个错误,让我知道我

cannot assign value of type AppDelegate to type FirMessagingDelegate

cannot assign value of type AppDelegate to type UNUserNotificationCenterDelegate.

所以很自然地,我将 FIRMessagingDelegateUNUserNotificationCenterDelegate 添加到我的应用程序中,但是 FIRMessagingDelegate 不允许应用程序编译说

type AppDelegate does not conform to protocol 'FirMessagingDelegate'.

有什么想法吗?我还没有设法找到其他人遇到此错误的任何其他情况,并且在 Google 的文档中,甚至没有添加这两个委托。

你走在正确的轨道上,还有一件事是让你的 AppDelegate class 符合 'FirMessagingDelegate' 协议,通过在某处实现 applicationReceivedRemoteMessage 函数是你的 AppDelegate class 因为这里描述的 'FirMessagingDelegate' 协议需要它 Firebase Doc