我正在尝试使用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)
    }

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

无法将AppDelegate类型的值分配给type
FirMessagingDelegate
而我

无法将类型AppDelegate的值分配给type
UNUserNotificationCenterDelegate。

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

AppDelegate类型不符合协议“FirMessagingDelegate”。

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

最佳答案

您的方向正确,要做的另一件事是使您的AppDelegate类符合'FirMessagingDelegate'协议,方法是在您的AppDelegate类的某个地方实现applicationReceivedRemoteMessage函数,因为此处描述的'FirMessagingDelegate'协议需要它

10-04 19:42