【发布时间】:2020-02-02 04:28:47
【问题描述】:
用户身份验证后,它们会被重定向到 Home.dart 文件。在 Home 的构建中,有一个底部导航栏功能,用于保存应用程序页面。
在我的家庭初始化状态中,我调用了一个将用户模型加载到变量中的函数:
void initState() {
super.initState();
getUserData();
pageController = PageController();
}
这样,我可以访问所有应用程序的当前用户数据,而无需继续读取 Firebase,因为模型 "User currentUser;" 在应用程序运行时加载。
但是,在登录后的一秒钟内,用户在重定向到导航栏时返回 null,这是由于在我的初始化状态下调用 getUserData 时的 Firebase 延迟。
如何在加载 currentUser 模型后立即更新我的初始页面(在这种情况下为 feed.dart)?如果我在屏幕之间切换并返回提要,一切正常。我只需要重新更新页面,而不必强制重新加载。
getUserData() async {
//Loads uidPath with current user id.
getCurrentUser();
//Loads currentUser model with current user data.
DocumentSnapshot doc = await usersRef.document(uidPath).get();
doc = await usersRef.document(uidPath).get();
currentUser = User.fromDocument(doc);
}
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore firebase-authentication