快速更新 Firebase 最新版本后出现错误“在范围内找不到“消息”

Par*_*iya 0 firebase swift firebase-cloud-messaging podfile

我最近通过 podfile将 Firebase 更新到最新的 Firebase 版本 7.3.1。现在我收到此错误并且 Xcode 因错误而失败:

Error 'Cannot find 'Messaging' in scope' 
Cannot find type 'MessagingRemoteMessage' in scope
Run Code Online (Sandbox Code Playgroud)

Xcode 版本:12.0

斯威夫特 5

我的代码是

extension AppDelegate : MessagingDelegate {
    //MARK:- Firebase Delegate
    
    func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
        print("Firebase registration token: \(fcmToken)")
    }
    
    func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) {
        print("Received data message: \(remoteMessage.appData)")
    }
}
Run Code Online (Sandbox Code Playgroud)

我的豆荚如下所示以供参考

  pod 'Firebase/Core'
  pod 'Firebase/Messaging'
  pod 'Firebase/DynamicLinks'
  pod 'Firebase/Crashlytics'
Run Code Online (Sandbox Code Playgroud)

我只是尝试使用完全移除豆荚

cocoapods-deintegrate cocoapods-clean
Run Code Online (Sandbox Code Playgroud)

但没有运气!

在此处输入图片说明

我经常更新我的豆荚,我看不出是什么会导致这种重大变化。

有谁知道是什么原因?

Par*_*iya 11

由于firebase的版本而出现,将其修复更改 MessagingRemoteMessage 为 MessagingDelegate错误将消失

以这种方式改变你的功能

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
    print("Firebase registration token: \(fcmToken)")
}


func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingDelegate) {
    print("Received data message: \(remoteMessage.description)")
}
Run Code Online (Sandbox Code Playgroud)

不要忘记 import FirebaseMessaging


小智 7

您需要在项目中明确导入“FirebaseMessaging”

import FirebaseMessaging
Run Code Online (Sandbox Code Playgroud)