Я могу очень хорошо аутентифицировать пользователей, однако, когда я намеренно ввожу адрес электронной почты, который не существует, или правильный адрес электронной почты, но неверный пароль, в сообщении об ошибке аутентификации возникает задержка.
Сначала я попробовал это с Future, асинхронным и ожидающим внутри, но следуя обучающему уроку, и он не использовал его, поэтому я забрал его, но без разницы в том, как он работал.Единственное, что я делаю по-другому, чем в этом уроке, это то, что я также обновляю базу данных облачного хранилища.
loginUser(_email, _password) {
formkey.currentState.save();
if (formkey.currentState.validate()) {
_auth
.signInWithEmailAndPassword(email: _email, password: _password)
.catchError((e) {
Fluttertoast.showToast(
msg: e.message,
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.TOP,
timeInSecForIos: 5,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
}).then((newUser) {
var now = new DateTime.now();
Firestore.instance
.collection('users')
.document(newUser.uid)
.collection('userInfo')
.document('userInfo')
.setData({
'Last login': now,
})
.then((onValue) {
print('Created it in sub collection');
}).catchError((e) {
print('======Error======== ' + e);
});
getSignedInUser();
Navigator.push(
context,
MaterialPageRoute(builder: (context) => MyApp()),
);
});
}
}
getSignedInUser() async {
mCurrentUser = await _auth.currentUser();
DocumentSnapshot result = await Firestore.instance.collection('users')
.document(mCurrentUser.uid).collection('profile').document('profile')
.get();
String myResult = result['First Name'];
Fluttertoast.showToast(
msg: "Welcome $myResult!",
toastLength: Toast.LENGTH_SHORT,
gravity: ToastGravity.TOP,
timeInSecForIos: 1,
backgroundColor: Colors.red,
textColor: Colors.white,
fontSize: 16.0
);
}
}
При первом вводе недопустимого электронного адреса я получаю сообщения об ошибках в консоли с указанием строки, гдеe.message называется нулевым.Если я снова нажму на кнопку «Войти», появится соответствующее сообщение об ошибке.Теперь, если я введу правильный адрес электронной почты, но неверный пароль (в том же запущенном экземпляре).он говорит, что имя пользователя не существует.Если я щелкну по нему еще раз, он выдаст правильное сообщение о неверном пароле.Есть идеи, что я делаю не так?Заранее спасибо