Chr*_*ian 0 dart firebase firebase-authentication flutter
我在Flutter应用程序中使用Firebase和FirebaseAuth来管理用户和数据。
问题是,即使用户输入了错误的凭据,也总是将他们带到下一个屏幕。他们可以将数据输入到不存在的用户帐户,或者输入错误的密码,并且它们仍被带到文本屏幕,只有在成功通过身份验证之后,它们才会发生。
据我了解,如果内部代码(如果user!= null)仅应在身份验证成功的情况下执行,但它始终会一直发生。
控制台确实记录了Firebase的响应,指出用户不存在或密码错误,但是代码仍然继续执行。
有人看到我做错了吗?我仍然是一个学习者,所以这可能是一个基本的错误:(
谢谢!!
final _auth = FirebaseAuth.instance;
...
onPressed: () async {
try {
final user = _auth.signInWithEmailAndPassword(
email: email, password: password);
if (user != null) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => CoursesListScreen(),
),
);
}
} catch (e) {
print(e.message);
}
},
Run Code Online (Sandbox Code Playgroud)
当您致电时,_auth.signInWithEmailAndPassword您会得到a Future,它将永远不会nil。因此,实际上导航器将始终转到下一个屏幕。请注意,此阶段用户尚未登录,您的代码仅检测到错误情况。
您更有可能要等到Future解决为止,您可以这样做await:
final user = await _auth.signInWithEmailAndPassword(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29 次 |
| 最近记录: |