flutter - 如何检查 getLogin() 函数是否有效以显示登录是否成功
问题描述
我不明白如何检查 getLogin() 函数是否有效以及用户是否存在。我在哪里编写代码来显示消息。当我通过为该语句分配一个变量进行检查时
res=dbService.getLogin(_email, _password);
然后它显示数据类型不匹配。你能帮我解决这个问题吗?我正在android studio中开发flutter应用程序并使用sqlite。请帮帮我,我被困两天了。
我在登录按钮上调用 _submit()
bool validateAndSave() {
final form = _formKey.currentState;
if (form.validate()) {
form.save();
return true;
}
return false;
}
void _submit(){
if (validateAndSave()) {
setState(() {
dbService.getLogin(_email, _password);
});
}
}
这是 getLogin() 的 db_service.dart 代码
Future<RegisterUser> getLogin(String user, String password) async {
await DB.init();
var res = await DB.rawQuery("userDetails WHERE emailId = '$user' and password = '$password'");
if (res.length > 0) {
return RegisterUser.fromMap(res.first);
}
return null;
}
解决方案
您可以等待登录方法的结果。
void _submit() async {
if (validateAndSave()) {
var user = await dbService.getLogin(_email, _password);
if (user != null) {
Navigator.of(context).pushNamed('/home');
} else {
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Sign in error")));
}
}
}
在这种情况下,如果成功,我会推送到主屏幕,并在出现错误时显示一个小吃栏。您可以将其调整为您的预期用例。
推荐阅读
- ms-access - 由于括号,MS Access 抛出错误
- python - 从曲线到曲面
- c - 回溯部分的回溯问题
- google-apps-script - Google Apps 脚本 - Google 日历 - getEvents() 多个搜索查询 - 或逻辑
- php - 迁移问题。“外键约束的格式不正确”。拉拉维尔
- python - 是否必须结束 urls.py 中定义的 url。和 '/'?
- npm - 找不到模块“@angular/core”。在我的离子应用程序中
- axapta - 文件日期 不具体 ax 2012 x++ 采购订单
- azure - Application Insights:Profiler Trace Duration 搞砸了
- postgresql - PostgreSQL上浮点数的模运算