使用 Flutter 的 Firebase 身份验证不起作用
Posted
技术标签:
【中文标题】使用 Flutter 的 Firebase 身份验证不起作用【英文标题】:Firebase Authentication with Flutter not working 【发布时间】: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
每次我使用相同的电子邮件注册时,它都不会出现任何错误。
【问题讨论】:
【参考方案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 而没有任何其他消息。这就是我看不到错误的原因。
【讨论】:
以上是关于使用 Flutter 的 Firebase 身份验证不起作用的主要内容,如果未能解决你的问题,请参考以下文章
用于 Flutter 桌面嵌入的 Firebase 身份验证插件
Flutter:使用谷歌身份验证在 Firebase 存储中实施任何身份验证失败
无法使用 Flutter 和 Firebase 设置 Facebook 身份验证
使用 Flutter 的电子邮件进行 Firebase 身份验证