如何检查getLogin()函数是否工作以显示登录是否成功



我不明白如何检查getLogin((函数是否有效以及用户是否存在。我在哪里写代码来显示消息。当我通过给这个语句分配一个变量进行检查时,

res=dbService.getLogin(_email, _password);显示数据类型不匹配。你能帮我做这个吗。我正在安卓工作室开发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")));
}
}
}

在这种情况下,如果成功,我会推到主屏幕,并在出现错误时显示一个小吃条。您可以根据您的预期用例对此进行调整。

最新更新