FCM主题 – 无法订阅主题:xxx with token:(null) – iOS

我从Firebase Messaging API收到此错误:

[Firebase/Messaging][I-FCM002010] Cannot subscribe to topic: /topics/testTopic with token: (null) 

但之前:

 Messaging.messaging().subscribe(toTopic: "/topics/testTopic") 

我打印出这样的令牌:

 print("TOKEN: \(InstanceID.instanceID().token() ?? "NO TOKEN")") 

结果是:

 TOKEN:cXPhGQ_inE4:APA91bEKZF5depHmIm9gDliCFRCRcnJf5LYy5FMg6nhpWvKU3o3HEtr1WTBHUiCZXT4XzhVg2oqXzhtfrgf83brtLdqXii546644ciMPO80tri4JPueQBClKbaomEfoh54ku8E2lw 

因此令牌不为

难道我做错了什么? 有人帮忙吗?

在MessagingDelegate中尝试:

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

问题是我想在didFinishLaunchingWithOptions中订阅,但在那一点上并没有设置所有服务。 解决方案是在委托didRegisterUserNotificationSettings订阅。

解决此问题的最理想的地方是MessagingDelegate方法didRefreshRegistrationToken。

 func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) { // TODO: subscribe to topics here }