【问题标题】:Retrying firebase token in Swift在 Swift 中重试 firebase 令牌
【发布时间】:2019-10-10 04:04:20
【问题描述】:

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

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

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

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

非常感谢。

【问题讨论】:

    标签: ios swift firebase firebase-notifications


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      一旦令牌可用或已被调用,该方法将被调用 神清气爽。通常,它会在每次应用启动时调用一次,但也可能是 如果令牌无效或更新,则更频繁地调用。

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

      我希望这会有所帮助。

      【讨论】:

      • 我明白了。我想我可以向用户显示某种消息,说他在重新启动应用程序之前不会收到通知。谢谢!
      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 2016-10-17
      • 1970-01-01
      相关资源
      最近更新 更多