@JordanBelford

Почему пользователь добавляться в бд еще до того как перешел по ссылки на почте?

При регистрации отправляется сообщение в котором есть ссылка, после перехода по которой должен добавиться пользователь в бд, но пользователь добавляться и без перехода по ссылки, в чем может быть проблема?
public class RegistrationActivity extends AppCompatActivity implements View.OnClickListener{

    private FirebaseAuth mAuth;
    private FirebaseAuth.AuthStateListener mAuthListener;

    private EditText ETemail;
    private EditText ETpassword;

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

        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

                } else {
                    // User is signed out

                }

            }
        };

        ETemail = (EditText) findViewById(R.id.et_email);
        ETpassword = (EditText) findViewById(R.id.et_password);

        findViewById(R.id.btn_registration).setOnClickListener(this);
    }



    @Override
    public void onClick(View view) {
        if (view.getId() == R.id.btn_registration) {
            if (ETemail.getText().length() != 0 && ETpassword.getText().length() != 0){

                registration(ETemail.getText().toString(), ETpassword.getText().toString());

            } else {
                Toast.makeText(RegistrationActivity.this, "Заполните все поля", Toast.LENGTH_SHORT).show();
            }

        }

    }


    public void registration(String email, String password) {
        mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    Intent intent = new Intent(RegistrationActivity.this, LoginActivity.class);
                    startActivity(intent);

                    //Отправка подтверждения на почту

                    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

                    user.sendEmailVerification()
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    if (task.isSuccessful()) {
                                        Log.d("TAG", "Email успешно отправлен");
                                    }
                                }
                            });
                    /*Toast.makeText(RegistrationActivity.this, "Регистрация успешна", Toast.LENGTH_SHORT).show();*/
                } else
                    Toast.makeText(RegistrationActivity.this, "Регистрация провалена", Toast.LENGTH_SHORT).show();
            }
        });
    }

    public void PLogin(View view) {
        Intent intent = new Intent(RegistrationActivity.this, LoginActivity.class);
        startActivity(intent);
    }


}
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
@IceJOKER
Web/Android developer
createUserWithEmailAndPassword()
- а что вы ожидали от этого метода? И помоему логично, что , чтоб кого-то верифицировать, он должен существовать, если в базе никого нет, то и некого верифицировать (:
Пользователь добавляется в базу и шлется ему письмо верификации.
Вы в свою очередь после авторизации должны смотреть user.isEmailVerified(), если вернет false, то послать нахрен пользователя, если true, значит пользователь верифицировался
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы