在 Swift 中重试 firebase 令牌

Retrying firebase token in Swift

我来 Swift 询问有关 Firebase 的问题。我的应用程序配置了 Firebase,因此在启动时获得了 firebase 令牌。我存储令牌没有问题并继续。

但是...如果用户在设备离线时启动应用程序会怎样?该应用程序尝试检索令牌,但由于没有互联网连接而失败。它最多尝试五次,然后停止尝试。 该应用程序也被锁定在登录屏幕中,因为要登录您需要有互联网。

想象一下,如果在五次尝试之后,设备最终获得连接,并且用户登录并进入应用程序。但是我没有 firebase 令牌,在他重新启动应用程序之前我无法向用户发送通知!

如果用户在没有令牌的情况下登录,我能否以某种方式重试 firebase 注册?

非常感谢。

您不必解决实际上不是问题的问题。推送令牌不会总是 刷新。这是 Firebase 的 didReceiveRegistrationToken.

的描述

This method will be called once a token is available, or has been refreshed. Typically it will be called once per app start, but may be called more often, if token is invalidated or updated.

此外,就像 Firebase 所说的那样,一旦您调用此方法,请利用它并将令牌存储在您的服务器中!当用户在没有互联网连接的情况下启动您的应用程序时,请不要担心。用户可能已将令牌保存到您的服务器上。如果用户是第一次启动您的应用程序,并且没有互联网连接,也不必担心。他会在接下来 运行.

得到一个新的

希望对您有所帮助。

进一步谷歌搜索后,我发现如果您当前的令牌为空,调用 InstanceID.instanceID().token() 确实会触发新的重试以获取 FCM 令牌,如果您有 returns 当前令牌一。 我在用户成功登录时添加了该调用,以便该应用程序可以至少尝试再次获取 FCM 令牌。