firebase - Flutter - 尝试在用户被重定向到主页后立即调用函数
问题描述
当我的应用程序启动时,它会检查用户是否已登录。它基本上是一个带有进度指示器的页面,直到它推送到实际主页。initState()
看起来像这样:
void initState() {
FirebaseAuth.instance.currentUser().then((firebaseUser) {
if (firebaseUser == null) {
Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context) => LogInPage()));
} else {
String userID = firebaseUser.uid;
AppConstants.currentUser = User(id: userID);
AppConstants.currentUser.getLoginPush().whenComplete(() {
Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) => GuestHomePage(index: 0)));
});
}
});
super.initState();
}
在第 8 行,getLoginPush() 执行如下操作:
Future<void> getLoginPush() async {
await getUserInfoFromFirestore();
await getImageFromStorage();
}
它基本上只是获取用户的图像和一些基本的用户信息。
我的问题是,当应用推送到主页时,如何在 Navigator.pushReplacement 之后添加类似于getLoginPush()
(暂时调用它)的功能?getRestOfInfo()
我没有getLoginPush()
&getRestOfInfo()
作为一个功能的原因是因为getRestOfInfo()
获取预订和保存的帖子。用户保存或预订的次数越多,重定向到主页所需的时间就越长。希望找到一种解决方案,以避免在用户被重定向到应用主页之前加载时间过长。
只是在这里寻找最佳的行动方案。这是我第一次开发应用程序,因此非常感谢任何帮助和指导。
先感谢您。海蒂
解决方案
推荐阅读
- extjs - ExtJS 7 Force Froala 编辑器以适应父组件大小
- ios - 我们可以指示 PAServer 执行自定义命令吗?
- spark-submit - 最近有人运行 spark-submit 吗?
- c - 如何获得数组大小均为 10 的 txt 文件和二进制文件的总和?
- amazon-web-services - AWS CloudFormation 模板生成问题
- c# - 使用 NCrontab 进行每日运行的 Cron 表达式,从任何给定时间开始,间隔 50 分钟
- reactjs - ReactJS中useEffect Hook中增加索引计数器的问题
- android - 由于上下文问题,隐式意图不起作用
- qt - 在 QGraphicsItemGroup 的 Qt setFocus() 中
- c++ - 我正在尝试从 qSQL 数据库中检索数据