firebase - 如何让我的颤振代码等待函数完成后再继续?
问题描述
我在寻找一种方法让我的代码在继续之前等待函数完成时遇到问题。这样做的原因是因为我需要先从 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;
}
这是我第一次在这里发帖,所以如果您需要更多详细信息等,请告诉我。
解决方案
我昨天遇到了同样的问题。我找到了可以改用的解决方案final user = Provider.of<User>(context);
。因此,如果您在身份验证后创建了一个 User 对象,您也可以使用它。
推荐阅读
- java - 如何在 Spring Data MongoDB 中实现聚合查询?
- vagrant - 是否安装了 gvfs-trash?在原子
- java - spring 不会重新生成“redirect:/path”,返回一个简单的字符串
- bash - 如何计算平均响应时间 Bash 脚本
- continuous-integration - 如何从 GitLab CI 管道的工作发送电子邮件?
- sql - 转换 REST API 的答案
- c++ - 为什么我从 SIMD 内在函数中获得更大的相对加速与具有更大数组的标量?
- python - Python中的列表理解解决以下问题
- reactjs - 在 React 组件中调用内联函数 - React 测试库 + Jest
- c# - dotnet core -> 返回 jpg 图像的 base64 字符串时 web api 内容类型的最佳实践