【问题标题】:Firebase Authentication with Flutter not working使用 Flutter 的 Firebase 身份验证不起作用
【发布时间】:2021-09-07 13:52:18
【问题描述】:

我正在尝试创建一个注册页面,如果具有特定电子邮件 ID 的用户已经存在,该页面应该会给出错误消息。但它不起作用。

signUp() {
    if (formkey.currentState!.validate()) {
      Map<String, String> userDataMap = {
        "name": usernameC.text,
        "email": emailC.text
      };

      setState(() {
        isLoading = true;
      });

      authMethods.signUp(emailC.text, passwordC.text).then((value) {
        databaseMethods.uploadUserData(userDataMap);
        Navigator.pushReplacement(
            context, MaterialPageRoute(builder: (context) => ChatRoom()));
      });
    }
  }

它从下面给出的 auth.dart 调用 signUp() 函数

 UserData? _userFromFirebase(User? user) {
    return user != null ? UserData(userid: user.uid) : null;
  }

 Future signUp(String email, String pass) async {
    try {
      UserCredential result = await _auth.createUserWithEmailAndPassword(
          email: email, password: pass);
      User? user = result.user;
      return _userFromFirebase(user);
    } catch (e) {
print(e}
  }

每次我使用相同的电子邮件注册时,它都不会出现任何错误。

【问题讨论】:

    标签: firebase flutter dart firebase-authentication


    【解决方案1】:

    如果您使用相同的电子邮件注册,您应该会收到以下消息: [firebase_auth/email-already-in-use] The email address is already in use by another account.

    我使用print(e.hashCode),然后使用此哈希码显示错误消息。

    【讨论】:

    • 它不工作,我不知道为什么它没有给出任何错误。
    【解决方案2】:

    好的,我尝试了这个方法,它成功了。刚刚添加了对“值”属性的空检查。

    authMethods.signUp(emailC.text, passwordC.text).then((value)
    

    它返回 null 而没有任何其他消息。这就是我看不到错误的原因。

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 2021-12-20
      相关资源
      最近更新 更多