簡體   English   中英

FirebaseAuth.getInstance()。signOut()未注銷

[英]FirebaseAuth.getInstance().signOut() doesn't signout

我嘗試從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);
            }

        }
    }

我認為您已正確注銷,但是隨着

LoginActivity.class

在可能再次登錄用戶的位置,您必須在“登錄”活動中進行某些更改。

為什么要使用SharedPreferences? 如果您要使用Firebase維護會話,則不需要sharedpreferences。 順便說一下,您的代碼似乎是正確的。 調用注銷函數后,請嘗試進行以下修改。

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()方法(因為我看不到完整的代碼,可能是您弄亂了該方法中的內容),因此僅出於測試目的刪除此方法,並按照我的意願將標志添加到您的意圖中。

如果工作正常,請告訴我。

希望這會幫助你。 謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM