Java 在另一个用户登录后显示上一个用户的数据
更新 我将每个活动都设置为启动模式下的SingleInstance,这就解释了问题出现的原因。将其设置为默认值或SingleTop,即可清除问题 所以,我正在制作一个android应用程序,其中有Firebase email auth用于登录和注销。有一个ProfileActivity,显示用户的配置文件图片和其他信息,如图像、帖子等。当该用户注销,另一个用户登录并导航到ProfileActivity时,会显示来自前一个用户的数据。但如果应用程序关闭并重新启动,则一切正常,显示正确的数据。此登录和注销操作在不关闭应用程序的情况下同时完成,直到问题出现 我尝试过修改firebase数据库中的规则,重新检查了注销方法,但没有发现任何相关问题 Firebase数据库规则 签出方法 这些方法也包括在内Java 在另一个用户登录后显示上一个用户的数据,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,更新 我将每个活动都设置为启动模式下的SingleInstance,这就解释了问题出现的原因。将其设置为默认值或SingleTop,即可清除问题 所以,我正在制作一个android应用程序,其中有Firebase email auth用于登录和注销。有一个ProfileActivity,显示用户的配置文件图片和其他信息,如图像、帖子等。当该用户注销,另一个用户登录并导航到ProfileActivity时,会显示来自前一个用户的数据。但如果应用程序关闭并重新启动,则一切正常,显示正确的数据。此登录
…没有崩溃?不,没有崩溃。这不是解决方案,只是一个提示。注销后,请检查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);
}
}