首页 > 解决方案 > 如何让我的颤振代码等待函数完成后再继续?

问题描述

我在寻找一种方法让我的代码在继续之前等待函数完成时遇到问题。这样做的原因是因为我需要先从 firebase 检索当前用户的功能,然后再继续使用此值并决定接下来要显示哪个屏幕。

我打算让代码工作的方式是检查是否已经有用户登录。如果有,则执行另一次检查以查看该用户是否存在信息 - 如果确实存在,则返回主屏幕,如果它不返回用户信息屏幕。如果当前没有用户登录,则应显示身份验证屏幕。

class SignedInState extends StatelessWidget {
  @override
  Widget build(BuildContext context) {

   final user = _getCurrentUser();

    if (user == null) {
      return Authenticate();
    } else {
     final snapShot = checkifDocumentExists(user);
      if (snapShot == null) {
      return UserInformation();
      } else {
      return Home();
    }
    }
  }
}
Future _getCurrentUser() async {
   final user = await FirebaseAuth.instance.currentUser();
   print(user);
   print(user.toString());
   return user;
    }

这是我第一次在这里发帖,所以如果您需要更多详细信息等,请告诉我。

标签: firebaseflutterdart

解决方案


我昨天遇到了同样的问题。我找到了可以改用的解决方案final user = Provider.of<User>(context);。因此,如果您在身份验证后创建了一个 User 对象,您也可以使用它。


推荐阅读