0

私はfirebaseのパスワード認証を使用しています。私はfirebaseと私のアプリを登録し、電子メール/パスワード認証を有効にしました。私のMainActivity、私はサインアップとログインの活動を開きますサインアップとログインボタンがあります。これまでは正常に動作しています。ユーザーがImageActivityにいるときに、戻るボタンを押すとアプリは終了しますが、代わりにログイン/登録アクティビティに移動します。私はすでにログイン/サインアップアクティビティの両方でonCreateに次のコードを書いています。ユーザがFirebaseでパスワード認証を使用してサインインしていることを確認してください

auth = FirebaseAuth.getInstance(); 

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

私もMainActivityonCreateにこのコードを書いています。 助けてください

答えて

2

もの

初のカップル:あなたはImageActivityを起動すると、あなたが戻ってスタックをクリアし、あなたのようにその映像活動を宣言する必要があります新しいタスク。あなたはMainActivityからサインアップ/ LoginActivityを開始する場合は、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と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);それは働きます。ありがとう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 (){@Override をpublic void onComplete(@NonNullタスクタスク){ progressBar.setVisibility(View.GONE); if(!task.isSuccessful()){ if(password.length()<6){inputPassword.setError(getString (インテントインテント=新しいインテント(LoginActivity.this、ImageActivity.class));} { ; startActivityForResult(intent、1); finish();}}}); – Pritish

+0

** auth.signInWithEmailAndPassword(電子メール、パスワード)**に設定する前に** password.length()**をチェックする必要があります** –

関連する問題