【问题标题】:FirebaseAuth.getInstance().signOut() doesn't signoutFirebaseAuth.getInstance().signOut() 不注销
【发布时间】:2019-10-13 17:27:12
【问题描述】:

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

我尝试了从 firebase 定期注销用户,但并没有解决问题。 我想知道可能导致问题的原因

 logout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FirebaseAuth.getInstance().signOut();
                Intent picture_intent = new Intent(Dashboard.this,LoginActivity.class);
                startActivity(picture_intent );
            }
        });

我检查用户是否连接:

@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);
            }

        }
    }

【问题讨论】:

  • 如何检查用户是否登录?
  • 你的项目中是否有 FirebaseUI-Android 库?
  • 我没有 FirebaseUI-Android 库,我的应用不需要这个。我会检查智能锁,但我认为这不是问题,也许尝试不同的手机会有所帮助

标签: java android firebase firebase-authentication


【解决方案1】:

我认为您已正确注销,但是当您移至

LoginActivity.class

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

【讨论】:

    【解决方案2】:

    为什么要使用 SharedPreferences?如果您正在使用 firebase 维护会话,则不需要共享首选项。 顺便说一句,您的代码似乎是正确的。调用注销函数后,尝试根据您的意图进行以下修改。

    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() 方法(因为我看不到您的完整代码,并且可能是您弄乱了此方法中的内容)所以只是为了测试删除此方法,并添加正如我所说,标记你的意图。

    如果它有效,请告诉我。

    希望这会对您有所帮助。谢谢

    【讨论】:

    • 谢谢它对我有用,我的错误在于你所说的登录。
    猜你喜欢
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2018-09-23
    • 2021-11-11
    • 2022-10-14
    • 2021-06-02
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多