2

我試圖實現推送通知到我的火力地堡的應用程序,但跟隨他們的文檔時,我必須添加以下代碼行:如何處理Swift 3中UNUserNotificationCenter和FIRMessaging的授權?

 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的值鍵入 UNUserNotificationCenterDelegate。

所以很自然,我添加了FIRMessagingDelegateUNUserNotificationCenterDelegate我的應用程序,但是FIRMessagingDelegate不允許應用程序編譯說

類型的AppDelegate不符合協議「FirMessagingDelegate」。

任何想法?我還沒有設法找到其他人遇到這個錯誤的其他情況,並且在Google的文檔中,這兩個代表甚至沒有被添加。

回答

6

你是在正確的軌道上,1兩件事要做的就是讓你的AppDelegate類符合「FirMessagingDelegate」協議,由地方實施applicationReceivedRemoteMessage功能是因爲它是由所描述的「FirMessagingDelegate」協議要求你的AppDelegate類這裏Firebase Doc

+0

哇,我不敢相信我沒有找到...謝謝! –

+0

也適合我!謝謝,順便說一句,這也是在Firebase示例代碼[這裏](https://github.com/firebase/quickstart-ios/tree/master/messaging)中給出的, –