web-dev-qa-db-fra.com

"Erreur: Utilisation du type non déclaré MessagingDelegate" dans la messagerie Firebase

J'ai récemment mis à jour mon module de messagerie Firebase et j'ai suivi le guide de démarrage rapide de Firebase pour effectuer les modifications de mise à niveau nécessaires. 

J'ai ajouté la nouvelle extension extension AppDelegate : MessagingDelegate, mais certaines erreurs se sont produites. 

 enter image description here

8

ajouter import FirebaseMessaging en haut de la page résoudrait le problème

16
Daniel Raouf

Pour Swift 4 à up:

Quelle version de Firebase utilisez-vous? Selon la documentation, les noms de classe changent pour Firebase 4.0.0 dans Swift. Donc, FIRMessagingDelegate, c'est maintenant MessagingDelegate, etc. Voir le guide de migration ici

1

il s'agit de la version de firebase, dans ce cas, changez MessagingDelegate en FIRMessagingDelegate et la fonction [START refresh_token] de 

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

} 

à 

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

enfin 

func messaging(_ messaging: Messaging, didReceive remoteMessage: 
  MessagingRemoteMessage) {
    print("Received data message: \(remoteMessage.appData)")
 }

à 

func applicationReceivedRemoteMessage(_ remoteMessage: 
     FIRMessagingRemoteMessage) {
    print("Received data message: \(remoteMessage.appData)")
}

réponse complète est

extension AppDelegate : FIRMessagingDelegate {
    func applicationReceivedRemoteMessage(_ remoteMessage: FIRMessagingRemoteMessage) {
    print("Received data message: \(remoteMessage.appData)")
}

// [START refresh_token]

func messaging(_ messaging: FIRMessaging, didReceiveRegistrationToken fcmToken: String) {
    print("Firebase registration token: \(fcmToken)")
}}
1
taha

MessagingDelegate est un type non déclaré, dit l'erreur. Assurez-vous que vous importez le cadre Firebase, comme suit:

import Firebase

Si l'importation de la structure Firbease vous donne une erreur no such module Firebase, vous devez d'abord résoudre ce problème, cette erreur no such module Firebase. Comment résoudre ce problème? Vous devez vérifier la version de votre pod Firebase par rapport à la version de votre langue Swift. Peut-être que votre version de Firebase utilise Swift 4.0 alors que votre projet utilise Swift 3.0.

Pour vous assurer que vous installez le pod dédié à Swift 3.0, add peut ajouter un vérificateur des paramètres de construction de chaque pod dans votre podfile. Assurez-vous également que vous installez la structure Messaging de Firebase, comme suit:

pod 'Firebase/Auth'
pod 'Firebase/Core'
pod 'Firebase/Database'
pod 'Firebase/Messaging'

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['Swift_VERSION'] = '3.0'
        end
    end
end
0
Glenn

Mettez à jour le podfile en utilisant pod update et si la mise à jour du pod échoue, supprimez le podfile.lock et exécutez pod install.

0
Haileapp