Java FirebaseAuth.getInstance().signOut()不';t注销

Java FirebaseAuth.getInstance().signOut()不';t注销,java,android,firebase,firebase-authentication,Java,Android,Firebase,Firebase Authentication,我尝试从firebase注销用户,但在我关闭应用程序并再次打开后,该用户仍然处于连接状态 我尝试了从firebase定期注销用户,但这并没有解决问题。 我想知道是什么导致了这个问题 logout.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ FirebaseAuth.getInstance().signOut(); 意向图\意向=新意向(Dashboard.this,LoginActivity.class);

我尝试从firebase注销用户,但在我关闭应用程序并再次打开后,该用户仍然处于连接状态

我尝试了从firebase定期注销用户,但这并没有解决问题。 我想知道是什么导致了这个问题

logout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
FirebaseAuth.getInstance().signOut();
意向图\意向=新意向(Dashboard.this,LoginActivity.class);
startActivity(图片/意图);
}
});
我的检查用户是否连接:

@Override
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
        FirebaseUser currentUser = firebaseAuth.getCurrentUser();
        if(currentUser != null)
        {
            SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
            int again = preferences.getInt(String.valueOf(R.string.remember_me), 0);
            if(again == 0)
            {
                Intent i = new Intent(getApplicationContext(), PagerActivity.class);
                startActivity(i);
            }
            else
            {
                Intent i = new Intent(getApplicationContext(), Dashboard.class);
                startActivity(i);
            }

        }
    }

为什么要使用SharedReferences?如果您使用firebase维护会话,则不需要SharedReference。 顺便说一下,您的代码似乎是正确的。调用注销函数后,尝试执行以下修改

FirebaseAuth.getInstance().signOut();    
Intent intent = new Intent(getActivity(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
并完全删除您的onAuthStateChanged()方法(因为我看不到您的完整代码,并且可能是您弄乱了此方法中的内容),因此仅为了测试,请删除此方法,并按照我所说的将标志添加到您的意图中

如果有效,请告诉我


希望这对你有帮助。谢谢

为什么要使用SharedReferences?如果您使用firebase维护会话,则不需要SharedReference。 顺便说一下,您的代码似乎是正确的。调用注销函数后,尝试执行以下修改

FirebaseAuth.getInstance().signOut();    
Intent intent = new Intent(getActivity(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
并完全删除您的onAuthStateChanged()方法(因为我看不到您的完整代码,并且可能是您弄乱了此方法中的内容),因此仅为了测试,请删除此方法,并按照我所说的将标志添加到您的意图中

如果有效,请告诉我


希望这对你有帮助。谢谢

我认为您已正确注销,但当您移动到

LoginActivity.class


在您可能再次登录用户的地方,您必须在登录活动中进行某些更改。

我认为您已正确注销,但当您移动到

LoginActivity.class


在您可能再次登录用户的位置,您必须对登录活动进行某些更改。

如何检查用户是否已登录?您的项目中是否有FirebaseUI Android库?我没有FirebaseUI Android库,我的应用程序不需要它。我会检查smartlock,但我不认为这是问题所在,也许在不同的手机上试用会有帮助。如何检查用户是否登录?您的项目中是否有FirebaseUI Android库?我没有FirebaseUI Android库,我的应用程序不需要它。我会检查一下智能锁,但我不认为这是问题所在,也许在不同的手机上试用会有帮助。谢谢,它对我有用,我错在你说的登录中。谢谢,它对我有用,我错在你说的登录中。