2

私はメインアクティビティでユーザにログインしますが、ボタンを使って別のアクティビティでユーザをログアウトしたいとします。しかし、FirebaseAuthオブジェクトを他のアクティビティに渡すことはできません。Androidベースのfirebase認証オブジェクトを他のアクティビティに渡してログアウトする

PutParcelableとPutSerializableはクラス自体を制御できないため動作しません。共有プリファレンスはプリミティブ型のみを受け入れます。新しいアクティビティで新しいインスタンスを取得し、新しいアクティビティでユーザをログアウトする必要がありますか?私は新しいインスタンスを取得してもユーザーの状態は保持されますか?

ここにコード

mAuth = FirebaseAuth.getInstance(); 
     mAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       FirebaseUser user = firebaseAuth.getCurrentUser(); 
       if (user != null) { 
        // User is signed in 
        Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid()); 
        Toast.makeText(getApplicationContext(), "You are logged in!!!", 
          Toast.LENGTH_SHORT).show(); 
        Intent intent = new Intent(MainActivity.this, CameraActivity.class); 

        startActivity(intent); 
       } else { 
        // User is signed out 
        Log.d(TAG, "onAuthStateChanged:signed_out"); 
       } 

      } 
     }; 

答えて

14

FirebaseAuthだあなたはどこでもアプリからfirebase AUTHのインスタンスを取得することができ、シングルトンクラスです。

あなただけ

mAuth=FirebaseAuth.getInstance(); 
    // Firebase sign out 
    mAuth.signOut(); 

かの簡単な方法を追加する必要が

FirebaseAuth.getInstance().signOut();

関連する問題