【问题标题】:FCM topic - Cannot subscribe to topic: xxx with token: (null) - iOSFCM 主题 - 无法使用令牌订阅主题:xxx:(null) - iOS
【发布时间】:2017-11-15 10:02:54
【问题描述】:

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

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

【问题讨论】:

  • 我也在不同的设备上进行了测试,但得到了同样的错误。
  • 已解决。非常感谢!问题是我想在 didFinishLaunchingWithOptions 中订阅,但那时并没有设置所有服务。解决方案是订阅委托 didRegisterUserNotificationSettings
  • 我在 iOS 9.3.5 上看到这个 sometimes,也确认令牌存在。也从 didRegisterUserNotificationSettings 调用。

标签: ios swift firebase firebase-cloud-messaging


【解决方案1】:

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

【讨论】:

  • 我正在这样做,但仍然看到这个问题:(
【解决方案2】:

在 MessagingDelegate 中尝试一下:

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

【讨论】:

  • 这可能也有帮助,但我已经解决了。无论如何,谢谢!
  • 此方法不存在。 didRefreshRegistrationToken 是正确的方法
【解决方案3】:

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

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

代替:

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

【讨论】:

    【解决方案4】:

    解决这个问题最理想的地方是在 MessagingDelegate 方法 didRefreshRegistrationToken 中。

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

    【讨论】:

      猜你喜欢
      • 2018-04-19
      • 2018-06-17
      • 2017-09-07
      • 1970-01-01
      • 2017-05-07
      • 2019-04-24
      • 1970-01-01
      • 2017-02-24
      • 2016-10-31
      相关资源
      最近更新 更多