Я работаю над приложением android, которое использует аутентификацию пользователя firebase для регистрации пользователя. Регистрация работает, но я хочу добавить имя пользователя в базу данных, внедрив его в .then (), но моя android studio продолжает давать «неразрешенный метод затем (?)». Я также использую catch, но это, кажется, работает нормально. Код, который я пишу, выглядит следующим образом, где firebaseAuth является объектом типа FirebaseAuth:
firebaseAuth.createUserWithEmailAndPassword(email,password)
.then( (u) => {
//Implementation of then
})
.catch(error => {
switch (error.code) {
case 'auth/email-already-in-use':
EmailWarning.setText("Email already in use");
case 'auth/invalid-email':
EmailWarning.setText("Invalid Email");
case 'auth/weak-password':
PasswordWarning.setText("Password should be 8 characters or longer");
default:
PasswordWarning.setText("Error during sign up");
}
});
Я обнаружил похожую проблему в следующей ссылке но даже после попытки это не работает.
Я заглянул в документацию по firebase и обнаружил другую реализацию, которая использует полный слушатель здесь , однако коды ошибок, описанные в этой документации , похоже, не работают с it.
Обновление 1: я закончил реализацию на полном слушателе следующим образом:
firebaseAuth.createUserWithEmailAndPassword(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
FirebaseUser user = firebaseAuth.getCurrentUser();
UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
.setDisplayName(Username)
.build();
user.updateProfile(profileUpdates);
}
else {
// If sign up fails, display a message to the user.
switch (task.getException()) {
case "auth/email-already-in-use":
EmailWarning.setText("Email already in use");
case "auth/invalid-email":
EmailWarning.setText("Invalid Email");
case "auth/weak-password":
PasswordWarning.setText("Password should be 8 characters or longer");
default:
PasswordWarning.setText("Error during sign up");
}
}
}
});
Теперь добавляемая пользователем часть работает нормально, но обработчик исключений не работает со строками, поэтому я могу не удается найти способ работы с кодами ошибок, приведенными в документации Firebase