Flutter-Backendless 用户登录 __ 如何验证用户凭据(电子邮件和密码)以从登录页面移动到主页

Flutter-Backendless User Login __ How to Validate User Credentials (Email and Password) to move from Login Page to Home Page

这里是移动开发新手。我正在尝试使用 Backendless 实现用户登录,但我不知道最好的方法是什么,尤其是要避免调用太多 API。

我知道这里有一些不当行为(尤其是用户体验),但我真的只是想先把逻辑弄好。

在以下摘录中,我尝试进行登录,完成后授予用户访问该应用程序的权限。如果它不成功,我希望发出警报。但是,该应用程序会独立于凭据是否正确显示警报。就好像在登录完成之前if就开始执行了。

我不是在寻找解决方法,我是一个菜鸟开发者,老实说,不知道处理这个问题的最佳方法。我将非常感谢您的帮助。谢谢大家!

                              Backendless.userService.login(email, password).then((user) => boologin=true);
                              if (boologin==true) {
                                Navigator.push(
                                  context,
                                  MaterialPageRoute(
                                    builder: (context) => Home(),
                                  ),
                                );
                              } else {
                                showBasicAlert(context,
                                    "Wrong username or password", "");

boologin 到达 if 时总是 false。因为 login 是异步的并且在 boologin = true 被设置之前,代码流继续。尝试像这里一样改变它

await Backendless.userService.login(email, password);

然后设置boologin = true

正如 Marat 所说,Flutter Backendless SDK 的大部分调用都是异步的,并且 您可以使用 await 关键字等待 Future 完成。或者您可以在响应正文中执行操作。

这里是处理Backendless SDK调用最方便的方式:

void logIn(email, password) {
  Backendless.userService.login(email, password)
    .then((loggedInUser) {
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => Home(),
        ),
      );
    })
    .catchError((onError) {
      showBasicAlert(context, "Wrong username or password", "");
    });
}