Firebase phone удостоверение

У меня есть app, где пользователь регистрируется с Вашим номером телефона используя FirebasAuth... Идея состоит в том, чтобы производить связь автоматически. Как я могу делать для того, чтобы, когда пользователь вновь использует app (даже app закрылся), он не должен регистрировать снова? что это посылает прямо в Начальную страницу, проверив, что это число уже существует. Там этот мой код функционирует хорошо....... с уже большое спасибо

private void verifySignInCode(){
    String code = editTextCode.getText().toString();
    PhoneAuthCredential credential = PhoneAuthProvider.getCredential(codeSent, code);
    signInWithPhoneAuthCredential(credential);
}
private void signInWithPhoneAuthCredential(PhoneAuthCredential credential) {
    mAuth.signInWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                       //here you can open new activity
                        Toast.makeText(getApplicationContext(),
                                "Login Successfull", Toast.LENGTH_LONG).show();
                Intent intent = new Intent(Loading.this,Welcome.class);
                             startActivity(intent);
                    } else {
                        if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                            Toast.makeText(getApplicationContext(),
                                    "Incorrect Verification Code ", Toast.LENGTH_LONG).show();
                        }
                    }
                }
            });
}
private void sendVerificationCode(){
    String phone = editTextPhone.getText().toString();

    if(phone.isEmpty()){
        editTextPhone.setError("Phone number is required");
        editTextPhone.requestFocus();
        return;
    }
    if(phone.length() < 10 ){
        editTextPhone.setError("Please enter a valid phone");
        editTextPhone.requestFocus();
        return;
    }
    PhoneAuthProvider.getInstance().verifyPhoneNumber(
            phone,        // Phone number to verify
            60,                 // Timeout duration
            TimeUnit.SECONDS,   // Unit of timeout
            this,               // Activity (for callback binding)
            mCallbacks);        // OnVerificationStateChangedCallbacks
}
PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
    @Override
    public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
    }
    @Override
    public void onVerificationFailed(FirebaseException e) {
    }
    @Override
    public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
        super.onCodeSent(s, forceResendingToken);
        codeSent = s;
    }
};

}

1
задан 07.11.2019, 16:48
1 ответ

В Activity, который у тебя есть seteado, как launcher ты будешь должен проверять, есть ли пользователь logeado или нет.

Только ты должен делать следующее:

import com.google.firebase.auth.FirebaseAuth;

public class MyActivity extends Activity {
  private FirebaseAuth mAuth;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    mAuth = FirebaseAuth.getInstance();
    if (mAuth.getCurrentUser() == null){
      //No estas logeado, debes ir a la pantalla de login
      //Metele un finish() a este Activity para que no puedas volver dando back una vez en la pantalla de login
    }else{
      //Estas logeado!
    }
  }
}
0
ответ дан 01.12.2019, 12:23