【问题标题】:iOS Firebase Push Notifications received to first token only, after token changes no longer received在不再收到令牌更改后,iOS Firebase 推送通知仅接收到第一个令牌
【发布时间】:2017-12-23 05:36:27
【问题描述】:

编辑:用新信息更新问题。

因此,有很多关于未收到 Firebase 通知的问题,但我还没有找到这样的问题。

我最近从使用旧的 p12 APNs 证书切换到了光荣的新 p8,并将其上传到我在 Firebase v4.0.0 上的所有项目。

我看到的是,当我重新安装我的任何项目时,我可以很好地发送和接收推送通知。但过了一段时间,令牌发生了变化——它只是停止工作——Firebase 说“消息发送成功”,但没有收到任何消息。

奇怪的是,我的应用仍然会收到推送通知到之前的 Firebase 令牌,而 Firebase 报告的新令牌无法正常工作。

按照Debugging Firebase Cloud Messaging on iOS 的建议,我愉快地调试了一上午:

  1. 我的 Postman firebase 尝试是否返回任何错误消息?不,成功:1 每次
  2. 我是在后台还是前台收到应用程序推送,还是两者都没有? 都没有
  3. 我的 AppDelegate 远程通知注册尝试是否成功? 是的
  4. 我可以使用新的 .p8 文件直接通过 APN 发送消息吗? 是的(感谢this)。当我直接通过 APN 发送消息时正在接收消息!

在 Firebase 控制台中,如果我向项目中的所有设备发送消息,我会收到所有设备的消息。但是,如果我尝试通过其 FCM 令牌将其限制在我的调试设备上,我将一无所获。

所以最后一个链接无法正常工作 - 似乎可以完美地用于新安装,然后在一段时间后轰炸 - FCM 到 APNs 链接。但是我将如何调试它?

【问题讨论】:

  • 这可能是你每次在 applicationdidLaunchwithoptions 上都必须刷新令牌。你在这样做吗?
  • @AbhishekBiswas 你能详细说明你的意思/你会怎么做吗?此外,如前所述,如果我被一个旧的无效令牌卡住,我预计发送消息会失败..

标签: ios firebase firebase-cloud-messaging


【解决方案1】:

这里

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

...
NotificationCenter.default.addObserver(self,
                                               selector: #selector(self.tokenRefreshNotification),
                                               name: .firInstanceIDTokenRefresh,
                                               object: nil)
        return true
}

func tokenRefreshNotification(_ notification: Notification) {
        if let refreshedToken = FIRInstanceID.instanceID().token() {
            print("InstanceID token: \(refreshedToken)")
            // Here you get the refreshed token
            // here you can connect to fcm and do subscribe to notifications
        }
    }

希望它能解决问题。

【讨论】:

  • 不走运.. 谢谢
猜你喜欢
  • 2020-02-17
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
相关资源
最近更新 更多