Java 在另一个用户登录后显示上一个用户的数据

Java 在另一个用户登录后显示上一个用户的数据,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,更新 我将每个活动都设置为启动模式下的SingleInstance,这就解释了问题出现的原因。将其设置为默认值或SingleTop,即可清除问题 所以,我正在制作一个android应用程序,其中有Firebase email auth用于登录和注销。有一个ProfileActivity,显示用户的配置文件图片和其他信息,如图像、帖子等。当该用户注销,另一个用户登录并导航到ProfileActivity时,会显示来自前一个用户的数据。但如果应用程序关闭并重新启动,则一切正常,显示正确的数据。此登录

更新

我将每个活动都设置为启动模式下的SingleInstance,这就解释了问题出现的原因。将其设置为默认值或SingleTop,即可清除问题

所以,我正在制作一个android应用程序,其中有Firebase email auth用于登录和注销。有一个ProfileActivity,显示用户的配置文件图片和其他信息,如图像、帖子等。当该用户注销,另一个用户登录并导航到ProfileActivity时,会显示来自前一个用户的数据。但如果应用程序关闭并重新启动,则一切正常,显示正确的数据。此登录和注销操作在不关闭应用程序的情况下同时完成,直到问题出现

我尝试过修改firebase数据库中的规则,重新检查了注销方法,但没有发现任何相关问题

Firebase数据库规则 签出方法 这些方法也包括在内
…没有崩溃?不,没有崩溃。这不是解决方案,只是一个提示。注销后,请检查auth.getCurrentUser()==null,然后再登录。还有(更重要的是),您是如何获取用户数据的?直接从Firebase或通过中间数据库?我有一些方法,它在我注销和登录后检查auth.getCurrentUser()==null。我正在使用中间数据库从firebase获取数据。@TaslimOseni我没有使用“UserProfileChangeRequest”获取用户详细信息,但我已将每个活动作为SingleInstance启动并将其删除,这是有意义的。谢谢你的意见。
{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}
auth = FirebaseAuth.getInstance();
auth.signOut();
@Override
protected void onStart() {
    super.onStart();
    auth.addAuthStateListener(authStateListener);

}

@Override
public void onStop(){
    super.onStop();
    if(authStateListener != null){
        auth.removeAuthStateListener(authStateListener);
    }
}