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

时间:2017-06-13 14:40:38

标签: ios swift firebase firebase-cloud-messaging

我从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

因此令牌不是 null

我做错了吗?有人帮忙吗?

4 个答案:

答案 0 :(得分:5)

问题在于我想在didFinishLaunchingWithOptions订阅,但在这一点上并未设置所有服务。 解决方案在代理didRegisterUserNotificationSettings中订阅。

答案 1 :(得分:3)

在MessagingDelegate中尝试:

k1

答案 2 :(得分:1)

我有类似的问题。解决方案是先调用FirebaseApp.configure()

FirebaseApp.configure()
Messaging.messaging().delegate = self

代替:

Messaging.messaging().delegate = self // this brakes FCM
FirebaseApp.configure()

答案 3 :(得分:0)

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

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