我在使用 Flutter 代码登录 Firebase 电子邮件/密码时遇到问题。
当电子邮件地址和密码正确时,什么也不会发生。
当电子邮件地址或密码不正确时,会生成 "Error "+errMsg.toString()
。
在控制台中我读到:
W/System (21892):忽略标头 X-Firebase-Locale,因为它的值 为空。 D/FirebaseAuth(21892):通知 id 令牌侦听器有关 用户 ( R6GCSXPvbUgbu4uQXdLYtXD1Lyo1 )。
代码如下:
final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
void loginAndAuthenticateUser(BuildContext context) async{
final User firebaseUser = (await _firebaseAuth.signInWithEmailAndPassword(
email: emailTextEditingController.text,
password: passwordTextEditingController.text)
.catchError((errMsg) {
displayToastMessage("Error " + errMsg.toString(), context);
})).user;
if (firebaseUser != null) {
usersRef.child(firebaseUser.uid).once().then((DataSnapshot snap){
if (snap.value == null){
Navigator.pushNamedAndRemoveUntil(context, MainScreen.idScreen, (route) => false);
displayToastMessage("You are logged in.", context);
}
else{
_firebaseAuth.signOut();
displayToastMessage("User not found.", context);
}
});
}
else{
displayToastMessage("Error occurred.", context);
}
}
displayToastMessage(String message, BuildContext context) {
Fluttertoast.showToast(msg: message);
}
答案 0 :(得分:0)
在这种情况下,我知道要做的最好的事情是做一个“try”“except”语句,我以前肯定遇到过这个问题,希望它更容易管理。