如何在用户注销时刷新FCM令牌?

时间:2017-02-09 13:41:50

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

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

提前致谢。

3 个答案:

答案 0 :(得分:15)

FCM令牌是一个实例ID令牌,它代表已安装的应用程序,而不是已登录的用户。通常,一旦应用程序保持安装,无论用户登录了什么,它都将具有相同的令牌。

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

答案 1 :(得分:0)

检查此帖子: Firebase Cloud Messaging - Handling logout

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

答案 2 :(得分:0)

要获得新的刷新的 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 令牌并在登录时再次请求它。它会起作用。