我从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 。
我做错了吗?有人帮忙吗?
答案 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
}