Firebase认证与Flutter不工作



我试图创建一个注册页面,它应该给出一个错误消息,如果用户与特定的电子邮件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调用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_auth/email-already-in-use] The email address is already in use by another account.

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

好的,我尝试了这个方法,并且成功了。刚刚为"value"添加了空检查属性。

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

返回null,没有任何其他消息。这就是为什么我看不到错误。

最新更新