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

时间:2016-12-31 06:50:03

标签: ios firebase swift3 firebase-cloud-messaging remote-notifications

我尝试使用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的值   FirMessagingDelegate

而我

  

无法将AppDelegate类型的值指定为type   UNUserNotificationCenterDelegate。

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

  

类型AppDelegate不符合协议' FirMessagingDelegate'。

有什么想法吗?我还没有设法找到其他人遇到此错误的其他情况,而且在Google的文档中,这两位代表甚至都没有添加。

1 个答案:

答案 0 :(得分:6)

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