@Mark_Brown116

Почему выдает ошибку? Если нажимаешь на «ок» то открывается второе активити, как исправить?

У меня есть аутентификация.При удачном смс коде выходит сообщение "вход успешно", это конечно хорошо, только в приложенья не хватает второго активити я добавил таким методом (Intent intent = new Intent(MainActivity.this, Main2Activity.class);
startActivity(intent); с этого момента все и началось. Даже при неудачной аутентификации все равно будет переход.Как же исправить? Какие условия задать?
editTextCode = findViewById(R.id.editTextCode);
        editTextPhone = findViewById(R.id.editTextPhone);

        findViewById(R.id.buttonGetVerificationCode).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sendVerificationCode();
            }
        });


        findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                startActivity(intent);
                verifySignInCode();
            }
        });
    }

    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(),
                                    "Вход Успешен", Toast.LENGTH_LONG).show();
                        } else {
                            if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {
                                Toast.makeText(getApplicationContext(),
                                        "Неверный Проверочный Код ", 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;
        }
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Mark_Brown116 Автор вопроса
xQfx-8uxh5g.jpgFdn026wAEQs.jpg
Ответ написан
Комментировать
KuSu
@KuSu
Android разработчик
вместо //here you can open new activity
сделай
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
 startActivity(intent);
 verifySignInCode();

а по кнопке вызывай только verifySignInCode()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы