Firebase - Cannot assign value of type 'AppDelegate' to type 'UNUserNotificationCenterDelegate?'

被刻印的时光 ゝ 提交于 2021-02-06 10:09:24

问题


I always get compiling erros when deploying firebase using this tutorial: https://firebase.google.com/docs/cloud-messaging/ios/client My deployment SDK is 9.0.

Errors I get:

How can I fix this?

Cannot assign value of type 'AppDelegate' to type 'UNUserNotificationCenterDelegate?'

1st scenario - What I did step by step (following the tutorial):

  • pod init with the following: pod 'Firebase/Core' pod 'Firebase/Messaging'
  • pod install
  • "import Firebase" on top of AppDelegate class

2nd scenario - Downloaded google demo iOS client app through a github repository ("messaging" folder under https://github.com/firebase/quickstart-ios)

  • compiled their app... worked fine.
  • compied to my existing XCode project their logic as according to the following steps:
  • pod init with the following: pod 'Firebase/Messaging'
  • pod install
  • imported the following: UIKit, UserNotifications, Firebase, FirebaseInstanceID, FirebaseMessaging

Code in AppDelegate:

func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // [START register_for_notifications]
        if #available(iOS 10.0, *) {
            let authOptions : UNAuthorizationOptions = [.alert, .badge, .sound]
            UNUserNotificationCenter.current().requestAuthorization(
                options: authOptions,
                completionHandler: {_,_ in })
            // For iOS 10 display notification (sent via APNS)
            UNUserNotificationCenter.current().delegate = self
            // For iOS 10 data message (sent via FCM)
            FIRMessaging.messaging().remoteMessageDelegate = self
        } else {
            let settings: UIUserNotificationSettings =
                UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
            application.registerUserNotificationSettings(settings)
        }
        application.registerForRemoteNotifications()
        // [END register_for_notifications]
        FIRApp.configure()
        // Add observer for InstanceID token refresh callback.
        NotificationCenter.default.addObserver(self,
                                               selector: #selector(self.tokenRefreshNotification),
                                               name: .firInstanceIDTokenRefresh,
                                               object: nil)
        return true
    }


    

回答1:


At the end of AppDelegate you need to add 2 extensions (UNUserNotificationCenterDelegate, MessagingDelegate)

See the source code from this sample app: https://github.com/firebase/quickstart-ios/tree/master/messaging



来源:https://stackoverflow.com/questions/40746232/firebase-cannot-assign-value-of-type-appdelegate-to-type-unusernotification

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!