Вход в Firebase: пользователь может войти в систему с неправильными учетными данными

#firebase #flutter #dart #firebase-authentication

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

Вопрос:

Я обнаружил, что пользователь может войти в систему с неправильными учетными данными. Как мне это исправить?

 onPressed: () async {
          if (_formKey.currentState.validate()) {
            setState(() => loading = true);
            dynamic result = await _auth
                .signInWithEmailAndPassword(email, password)
                .then((value) => Navigator.pushReplacementNamed(
                    context, Strings.userInfoPath));
            if (result == null) {
              setState(() {
                loading = false;
                error = Strings.couldNotLogInCred;
              });
 

Ответ №1:

В предоставленном вами коде вы нажимаете новый экран без предварительной проверки достоверности учетных данных, следуя возможному решению:

 onPressed: () async {
          if (_formKey.currentState.validate()) {
            setState(() => loading = true);
            dynamic result = await _auth
                .signInWithEmailAndPassword(email, password);
            if (result == null) {
              setState(() {
                loading = false;
                error = Strings.couldNotLogInCred;
              });
              return;
            }
            await Navigator.pushReplacementNamed(
                    context, Strings.userInfoPath);
          }
}
 

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

1. О, конечно! Большое спасибо, это исправлено 🙂

Ответ №2:

Вы тоже можете попробовать это.

       FirebaseAuth.instance.signInWithEmailAndPassword(email: email, password: psw)
      .then((result) {
    //If sign in, this block works
  }).catchError((e) {
    //this block works if there is an error
  });