【问题标题】:Firebase token management in servers服务器中的 Firebase 令牌管理
【发布时间】:2016-11-16 09:46:57
【问题描述】:

我对 firebase 和 android 通知还是很陌生。我希望能够根据一些规则向单个用户发送通知。到目前为止,我一直在阅读的是可以通过以下方式生成令牌:

FirebaseInstanceId.getInstance().getToken()

然后,令牌将需要在到期时刷新。

如果可能的话,我如何设置这些令牌的到期时间?如果有 1000 个用户在同一时间刷新他们的令牌,那么我需要将这些令牌写入我的应用服务器一千次。是否有针对此问题的已知扩展解决方案(例如,保留相同的令牌但仅刷新其到期时间)?

【问题讨论】:

    标签: android firebase android-notifications firebase-cloud-messaging


    【解决方案1】:

    Firebase documentation on monitoring the token列举原因:

    注册令牌可能会在以下情况下发生变化:

    • 应用删除实例 ID
    • 应用已在新设备上恢复
    • 用户卸载/重新安装应用程序
    • 用户清除应用数据。

    除了删除令牌(上面的第一个选项)之外,您无法控制何时刷新令牌。但与 Firebase 身份验证令牌不同,Firebase 云消息传递的实例 ID 令牌不会按固定时间表刷新。实例 ID 令牌刷新相对较少,只需要特别考虑在最大的用例中进行横向扩展。

    【讨论】:

      【解决方案2】:

      不。没有办法只刷新注册令牌的过期

      当注册令牌刷新时,令牌值会改变。注册令牌本身过期的事件也是不确定的,并且只能发生在FirebaseInstanceId docs中指定的特定事件上:

      实例 ID 是稳定的,除非:

      • 应用删除实例 ID
      • 应用已在新设备上恢复
      • 用户卸载/重新安装应用程序
      • 用户清除应用数据

      在上述情况下,会生成一个新的实例 ID,应用程序需要重新创建之前生成的授权令牌,以实现 onTokenRefresh()

      如上所述,在刷新令牌的情况下,onTokenRefresh() 将被调用,您应该处理后续步骤,将其发送到您的应用服务器并删除过期的旧令牌和其他一些东西。

      【讨论】:

        猜你喜欢
        • 2018-04-02
        • 2017-03-22
        • 2015-02-11
        • 1970-01-01
        • 2020-07-31
        • 1970-01-01
        • 2020-05-09
        • 1970-01-01
        • 2017-10-30
        相关资源
        最近更新 更多