我有一个问题,当我在应用程序中查看房屋的视图时,必须在获取名称为null时从Firebase实例化用户。 我不知道如何带来用户并期望它异步加载,因为窗口小部件的初始状态不允许异步标记。 如果我将其分配给“然后”,则它也为空
谢谢!
//Home Widget State
User currentUser = widget.userController.getCurrentUser(); //ERROR
//CONTROLLER
Future<User> getCurrentUser() async {
User user = await _db.collection('users').document(await getCurrentUserUID()).get().then((snapshot){
return User.fromJson(snapshot.data);
});
print(user.toString());
return user;
}
答案 0 :(得分:0)
我假设您正在寻找类似的东西?
Map _userProfile;
@override
void initState() {
super.initState();
FirebaseAuth.instance.onAuthStateChanged.listen((user) {
if(user != null) _getUserProfile(user.uid);
});
}
void getUserProfile(String uid) {
_db.collection('users').document(uid).get().then((snapshot){
setState(() {
_userProfile = snapshot.data;
});
});
}