Firebase 云消息传递和 iOS 多主题订阅失败。

14

在iOS调用subscribeToTopic时,我遇到了一个错误:

无法订阅主题。错误域为 com.google.fcm,错误代码为 5,"(null)"

我们有3-4个主题,并按照以下方式调用,这非常基础。

    for topic in topics{
        FIRMessaging.messaging().subscribeToTopic(topic)
    }

文档说明该调用是异步的,如果订阅失败,Firebase将会重试。但它一直无法成功,并且用户从未接收到发送到该主题的任何消息。

有人面对这个问题并找到了解决方法吗?


当我们在调用之间添加延迟时,它可以工作,这意味着在循环中多次调用subscribeToTopic存在问题。我猜这是订阅多个主题的常见情况。 - Sajid Kalla
我认为即使最初失败了,它肯定会在一些延迟后重试,以同步客户端和服务器之间的状态。 - evanescent
如果重试发生在 FCM 服务器端,那就没问题了。但如果 SDK 将失败的订阅保存在设备上以便将来同步,那就会有问题。我们不希望用户重新打开应用程序进行推送订阅。 :) - Sajid Kalla
2个回答

3
我遇到了相同的错误。请将以下代码添加到您的AppDelegate中:
    func application(application: UIApplication, didRegisterUserNotificationSettings notificationSettings: UIUserNotificationSettings) {
    FIRMessaging.messaging().subscribeToTopic("/topics/yourTopic")

}

记得在didFinishLaunchingWithOptions方法中调用FIRApp.configure()。


0

我添加了URL类型com.google.fcm,错误消失了,但我不知道为什么。

你可以看到像this link这样的添加。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接