【发布时间】:2019-12-09 08:38:55
【问题描述】:
提前致谢!
Flutter & Firestore
我正在检查用户是否是管理员。我有一个集合'用户',其中:一个布尔:管理员:真或假。如果是真的,它会显示管理屏幕。否则它会显示主屏幕。
问题:前 1 秒我得到了这个屏幕。 (见屏幕截图,只有 1 秒可见)当应用从 Firestore 获取数据时,是否可以选择使用加载指示器。
我尝试添加 if (currentUser.admin == null) {} 但这不起作用。
User currentUser;
//I made a separate modal document
@override
void initState() {
super.initState();
pageController = PageController(initialPage: 0);
getUser();
}
getUser() async {
final FirebaseUser user = await FirebaseAuth.instance.currentUser();
DocumentSnapshot doc =
await Firestore.instance.collection("users").document(user.uid).get();
setState(() {
currentUser = User.fromDocument(doc);
});
print(currentUser.admin);
}
@override
Widget build(BuildContext context) {
if (currentUser.admin == true) {
return AdminScreen(
currentUser: currentUser,
);
} else {
return mainScreen();
}
}
}
更新:试过这个: getUser() 异步 { 最终 FirebaseUser 用户 = 等待 FirebaseAuth.instance.currentUser(); 文档快照文档 = await Firestore.instance.collection("users").document(user.uid).get();
if (doc.exists) {
try {
setState(() {
currentUser = User.fromDocument(doc);
});
} catch (e) {
print(e);
}
}
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore