Je reçois cette erreur de l'API Firebase Messaging ?:
[Firebase/Messaging][I-FCM002010] Cannot subscribe to topic: /topics/testTopic with token: (null)
Mais avant:
Messaging.messaging().subscribe(toTopic: "/topics/testTopic")
J'imprime le jeton comme ceci:
print("TOKEN: \(InstanceID.instanceID().token() ?? "NO TOKEN")")
Le résultat est:
TOKEN:cXPhGQ_inE4:APA91bEKZF5depHmIm9gDliCFRCRcnJf5LYy5FMg6nhpWvKU3o3HEtr1WTBHUiCZXT4XzhVg2oqXzhtfrgf83brtLdqXii546644ciMPO80tri4JPueQBClKbaomEfoh54ku8E2lw
Donc, le jeton n'est pas null .
Est-ce que je fais quelque chose de mal? Quelqu'un a de l'aide?
Le problème était que je voulais m'inscrire dans didFinishLaunchingWithOptions
mais que tous les services n'étaient pas configurés à ce moment là . La solution consistait à s'inscrire dans le délégué didRegisterUserNotificationSettings
.
Essayez dans MessagingDelegate:
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
Messaging.messaging().subscribe(toTopic: "/topics/testTopic")
}
J'ai eu le même problème. La solution consistait à appeler FirebaseApp.configure()
en premier:
FirebaseApp.configure()
Messaging.messaging().delegate = self
au lieu de:
Messaging.messaging().delegate = self // this brakes FCM
FirebaseApp.configure()
L'emplacement idéal pour résoudre ce problème est dans la méthode MessagingDelegate didRefreshRegistrationToken.
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
// TODO: subscribe to topics here
}