使用 Flutter Firebase 电子邮件和密码身份验证登录时遇到问题

时间:2020-12-21 21:06:14

标签: firebase flutter firebase-authentication

我在使用 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);
  }

1 个答案:

答案 0 :(得分:0)

在这种情况下,我知道要做的最好的事情是做一个“try”“except”语句,我以前肯定遇到过这个问题,希望它更容易管理。