0

我正在使用firebase的密碼驗證。我已使用firebase註冊了我的應用程序並啓用了電子郵件/密碼身份驗證。在我的MainActivity中,我有註冊和登錄按鈕,它將打開註冊和登錄活動。如果有成功註冊/登錄,我將用戶重定向到ImageActivity。到此爲止它工作正常。當用戶在ImageActivity中時,如果他/她按下返回按鈕,應用程序應該關閉,但是我被帶到登錄/註冊活動。我已經在登錄/註冊活動的onCreate中編寫了以下代碼。檢查用戶是否使用Firebase中的密碼驗證登錄

auth = FirebaseAuth.getInstance(); 

     if (auth.getCurrentUser() != null) { 
      startActivity(new Intent(LoginActivity.this, ImageActivity.class)); 
      finish(); 
     } 

我在MainActivityonCreate也寫了這個代碼。 請幫助

回答

2

爲了避免這個問題,你可以做幾件事情

首先:當你開始ImageActivity清除後退堆棧,你應該聲明圖片活動作爲一個新的任務。要做到這一點,你應該在LoginActivity或SignupActivity

auth = FirebaseAuth.getInstance(); 

    if (auth.getCurrentUser() != null) { 
     Intent intent = new Intent(LoginActivity.this, ImageActivity.class); // Change LoginActivity to SignupActivity if you are calling ImageActivity from SignupActivity 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 
     finish(); 
    } 

寫下面的代碼如果從MainActivity開始註冊/ LoginActivity,確保 你這樣做,當你從 MainActivity開始LoginActivity和SignupActivity相同。

這樣做後,你的ImageActivity類上實現onBackPressed。並在onBackPressed中調用finish()。代碼如下

@Override 
public void onBackPressed() { 
    finish(); 
} 

這樣做後,我希望你的問題將得到解決。

+0

我剛剛添加這一行intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); It works.Thanks alot – Pritish

+0

我很樂意幫助你! –

0

檢查

mAuth.signInWithEmailAndPassword(email, password) 
    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
     @Override 
     public void onComplete(@NonNull Task<AuthResult> task) { 
      if (task.isSuccessful()) { 
       // Sign in success, update UI with the signed-in user's information 
       Log.d(TAG, "signInWithEmail:success"); 
       FirebaseUser user = mAuth.getCurrentUser(); 
       updateUI(user); 
      } else { 
       // If sign in fails, display a message to the user. 
       Log.w(TAG, "signInWithEmail:failure", task.getException()); 
       Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", 
         Toast.LENGTH_SHORT).show(); 
       updateUI(null); 
      } 

      // ... 
     } 
    }); 
+0

參考:https://firebase.google.com/docs/auth/android/password-auth –

+0

auth.signInWithEmailAndPassword(電子郵件,密碼).addOnCompleteListener(LoginActivity.this,新OnCompleteListener (){@覆蓋 public void onComplete(@NonNull Task task){ progressBar.setVisibility(View.GONE); if(!task.isSuccessful()){ if(password.length()<6){inputPassword.setError(getString( (Intent(LoginActivity.this,ImageActivity.class));} else {Toast.makeText(LoginActivity.this,「fail」,Toast.LENGTH_LONG).show();}} else {Intent intent = new Intent(LoginActivity.this,ImageActivity.class) ; startActivityForResult(意向,1);結束();}}}); – Pritish

+0

你必須檢查** password.length()**之前設置爲** auth.signInWithEmailAndPassword(電子郵件,密碼)** –