当android应用程序注销并与另一个用户登录时如何重新生成新的FCM令牌

Posted

技术标签:

【中文标题】当android应用程序注销并与另一个用户登录时如何重新生成新的FCM令牌【英文标题】:How to regenerate the new FCM Token when android app gets logout and login with another user 【发布时间】:2021-08-27 15:52:01 【问题描述】:

当用户注销时,我的应用程序没有刷新 FCM 令牌。然后另一个用户使用相同的 FCM 令牌使用新凭据登录。所以通知会发送给错误的用户。

请帮我解决这个问题。提前致谢。

生成Token的代码:

@Override
    public void onNewToken(@NonNull String token) 
    
        super.onNewToken(token);
       
            Log.d(TAG, "token: " + token);

      

【问题讨论】:

设备相同时,通知token是否相同 您需要在收到通知时检查用户 ID,以确保它确实显示给新用户 没有清除令牌的选项? @Quicklearner 【参考方案1】:

您可能将用户/设备令牌存储在您的数据库中,并使用它来发送 FCM 消息。当用户注销时,您需要在注销之前删除该令牌。如果您尝试在您可能会出现权限错误之后执行此操作(确保用户只能删除他自己的令牌)。

当用户登录时,将他的令牌同步到您的数据库。否则,当您不删除已注销用户的令牌时,您将收到有关在同一设备上登录您的应用的每个用户的通知。

【讨论】:

以上是关于当android应用程序注销并与另一个用户登录时如何重新生成新的FCM令牌的主要内容,如果未能解决你的问题,请参考以下文章

Android Login with Token Session:就像用户登录并保持在会话中直到注销

登录时如何处理状态(Ionic、Firebase、AngularJS)?

Android Facebook 登录问题

Android:从另一个活动中注销 Facebook

谷歌驱动API的Android如何登录并从硬编码我的硬盘帐户注销无需用户交互?

Google+ 登录将用户注销