В моей деятельности по регистрации пользователь должен ввести адрес электронной почты, а затем пароль, который длиннее 6, имеет специальный знак и т. Д. Проблема заключается в том, что после сопоставления всех требований к паролю пользователь нажимает кнопку регистрации, а затемпоявляется всплывающее сообщение о том, что электронное письмо отправлено, но в то же время пользователь входит в систему. При нажатии на кнопку «Назад» на телефоне пользователь находится в приложении, которым он должен быть, только когда он подтвердил свой адрес.
Вот часть моей деятельности по регистрации электронной почты:
btnSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = inputEmail.getText().toString();
String password = inputPassword.getText().toString();
String passwordConfirm = inputPasswordConfirm.getText().toString();
if (password.length() < 6) {
Toast.makeText(getApplicationContext(), "Das Passwort ist zu kurz, gebe mindestens 6 Zeichen ein.", Toast.LENGTH_SHORT).show();
return;
}
if (!password.matches("^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,}$")){
Toast.makeText(RegistrationEmailActivity.this, "Dein Passwort hat mindestens eine der folgenden Anforderungen nicht: Großbuchstaben, Zahl, Spezialzeichen.", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(passwordConfirm)){
Toast.makeText(getApplicationContext(), "Bestätige dein Passwort", Toast.LENGTH_SHORT).show();
}
else if (!password.equals(passwordConfirm)){
Toast.makeText(getApplicationContext(), "Die Passwörter stimmen nicht überein. Bitte überprüfe deine Eingabe.", Toast.LENGTH_SHORT).show();
}
else {
progressBar.setVisibility(View.VISIBLE);
//create user
auth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener( new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Toast.makeText(RegistrationEmailActivity.this, "Welcome to the app", Toast.LENGTH_SHORT).show();
progressBar.setVisibility(View.GONE);
if (!task.isSuccessful()) {
Toast.makeText(RegistrationEmailActivity.this, "Authentication failed." + task.getException(),
Toast.LENGTH_SHORT).show();
} else {
auth.getCurrentUser().sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Toast.makeText(RegistrationEmailActivity.this, "Du wurdest erfolgreich registriert. Schau in deinem Postfach nach und klicke auf den Link, " +
"damit die E-Mail verifiziert wird und du dich einloggen kannst.", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(RegistrationEmailActivity.this, "Das hat leider nicht geklappt. Überprüfe deine E-Mail und versuche es erneut.", Toast.LENGTH_SHORT).show();
}
}
});
}
}
});
}
}
});
Я использовал этот учебник https://www.youtube.com/watch?v=06YKlMdWyMM для проверки электронной почты. В 19:09 я думаю, что он показывает какое-то решение проблемы, но я не знаю, где реализовать этот код.