web-dev-qa-db-fra.com

Sujet FCM - Impossible de s'abonner à la rubrique: xxx avec jeton: (null) - iOS

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? 

26
anitteb

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.

4
anitteb

Essayez dans MessagingDelegate:

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
    Messaging.messaging().subscribe(toTopic: "/topics/testTopic")
}
2
dr OX

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()
0
kam800

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
}
0
Scott D