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.
ajouter import FirebaseMessaging
en haut de la page résoudrait le problème
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
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)")
}}
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
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
.