Успешный вход с проверкой подлинности на основе Flutter firebase, независимо от того, находится ли пользователь в базе данных

#firebase #flutter #authentication #firebase-authentication

# #firebase #flutter #аутентификация #firebase-аутентификация

Вопрос:

Если я попытаюсь заполнить поля текстовой формы, отвечающие за адрес электронной почты и пароль, и отправить, процедура входа в систему всегда будет успешной.. не имеет значения, находится ли пользователь в поле аутентификации firebase. Я уже делал страницы входа и регистрации раньше, и firebase работала отлично. Только разница заключалась в использовании pushNamed вместо pushReplace. Должно ли это иметь значение?

Это форма inkwell onTap :

 onTap: () {
                                      final formState = _formkey.currentState;
                                      if (formState.validate()) {
                                        formState.save();

                                        signIn(_email, _password).whenComplete(
                                            () => Navigator.of(context)
                                                    .pushReplacement(
                                                        MaterialPageRoute(
                                                  builder: (context) =>
                                                      HomePage(),
                                                )));
                                      }
                                    }

 

и аутентификация:

 FirebaseAuth _auth = FirebaseAuth.instance;
Future<void> signIn(String _email, String _password) async {
  try {
    UserCredential user = await _auth.signInWithEmailAndPassword(
        email: _email, password: _password);
  } on FirebaseAuthException catch (e) {
    print('error');
  }
}
 

Включен метод входа по электронной почте / паролю.
Как исправить эту проблему и разрешить входить в систему только пользователям, которые существуют в firebase?

Комментарии:

1. whenComplete() метод определяет The [action] function is called when this future completes, whether it does so with a value or with an error. , поэтому даже его успешный или ошибочный вход в систему всегда будет вызываться

2. Есть много примеров проверки пользователя FirebaseAuth. Например, проверьте, существует ли пользователь или null после этого, затем перейдите () куда-нибудь