我正在尝试使用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
类型的值分配给typeFirMessagingDelegate
而我
无法将类型AppDelegate的值分配给type
UNUserNotificationCenterDelegate。
因此,很自然地,我将
FIRMessagingDelegate
和UNUserNotificationCenterDelegate
添加到我的应用程序中,但是FIRMessagingDelegate
不允许应用程序编译说AppDelegate类型不符合协议“FirMessagingDelegate”。
有任何想法吗?我还没有找到其他人遇到此错误的其他情况,并且在Google文档中甚至没有添加这两个代表。
最佳答案
您的方向正确,要做的另一件事是使您的AppDelegate类符合'FirMessagingDelegate'协议,方法是在您的AppDelegate类的某个地方实现applicationReceivedRemoteMessage
函数,因为此处描述的'FirMessagingDelegate'协议需要它