【问题标题】:How to refresh FCM Token on user Logout?如何在用户注销时刷新 FCM 令牌?
【发布时间】:2017-06-27 13:22:18
【问题描述】:

我第一次获得 FCM 并将其保存到我的 userDefaults。现在当用户注销时,如何再次刷新 FCM 令牌?我搜索了文档和许多其他问题,但没有找到更好的解决方案。

提前致谢。

【问题讨论】:

    标签: ios objective-c firebase firebase-cloud-messaging


    【解决方案1】:

    FCM 令牌是一个实例 ID 令牌,它代表已安装的应用程序,而不是已登录的用户。通常,一旦应用保持安装状态,无论哪个用户登录,它都会拥有相同的令牌。

    您必须自己管理与令牌关联的用户。当用户登录时,您应该将令牌与用户的 ID 相关联,当用户退出时,您应该删除该关联。

    【讨论】:

    【解决方案2】:

    要获得新的刷新 FCM 令牌(强制),首先您必须将其删除,然后再次请求 FCM 令牌。删除后总会提供一个新的token。

    删除已保存的令牌:

    FirebaseMessaging.getInstance().deleteToken()
    

    要请求 FCM 令牌:

            Firebase.messaging.isAutoInitEnabled = true
            // Get token
            FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
                //On token fetch fail
                if (!task.isSuccessful) {
                   //msg_token_failed
                    Log.e("Token failed", task.exception)
                    return@OnCompleteListener
                }
    
                // Get new Instance ID token
                val newDeviceToken = task.result
                Log.e("newDeviceToken", newDeviceToken)
            })
    

    因此,在您的情况下,您可以在注销时删除 FCM 令牌并在登录时再次请求它。它会起作用的。

    【讨论】:

      【解决方案3】:

      查看这篇文章: Firebase Cloud Messaging - Handling logout

      @Arthur 评论中提到的安全问题已解决!

      【讨论】:

        猜你喜欢
        • 2020-10-19
        • 2021-07-05
        • 1970-01-01
        • 1970-01-01
        • 2020-09-19
        • 2017-05-10
        • 2021-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多