I'm getting this error from Firebase Messaging API:
[Firebase/Messaging][I-FCM002010] Cannot subscribe to topic: /topics/testTopic with token: (null)
But before:
Messaging.messaging().subscribe(toTopic: "/topics/testTopic")
I'm printing out the token like this:
print("TOKEN: \(InstanceID.instanceID().token() ?? "NO TOKEN")")
The result is:
TOKEN:cXPhGQ_inE4:APA91bEKZF5depHmIm9gDliCFRCRcnJf5LYy5FMg6nhpWvKU3o3HEtr1WTBHUiCZXT4XzhVg2oqXzhtfrgf83brtLdqXii546644ciMPO80tri4JPueQBClKbaomEfoh54ku8E2lw
So the token isn't null.
Am I doing something wrong? Anyone some help?
The problem was that I wanted to subscribe in didFinishLaunchingWithOptions
but in that point not all services were set up.
The solution was to subscribe in the delegate didRegisterUserNotificationSettings
.
In MessagingDelegate try it:
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
Messaging.messaging().subscribe(toTopic: "/topics/testTopic")
}
I had similar problem. The solution was to invoke FirebaseApp.configure()
first:
FirebaseApp.configure()
Messaging.messaging().delegate = self
instead of:
Messaging.messaging().delegate = self // this brakes FCM
FirebaseApp.configure()
The most ideal place to resolve this issue is in the MessagingDelegate method didRefreshRegistrationToken.
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
// TODO: subscribe to topics here
}