首页 > 解决方案 > 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()获取预订和保存的帖子。用户保存或预订的次数越多,重定向到主页所需的时间就越长。希望找到一种解决方案,以避免在用户被重定向到应用主页之前加载时间过长。

只是在这里寻找最佳的行动方案。这是我第一次开发应用程序,因此非常感谢任何帮助和指导。

先感谢您。海蒂

标签: firebaseflutterdart

解决方案


推荐阅读