【发布时间】:2021-05-06 23:01:06
【问题描述】:
我已经创建了函数get user并从firestore设置了它的数据,这是函数getUser的代码。
Future<User> getUser(String uid) async{
User user;
_firestore
.collection(USERS_COLLECTION)
.where("uid", isEqualTo: uid.toString())
.getDocuments()
.then((doc) {
_firestore
.document('/$USERS_COLLECTION/${doc.documents[0].documentID}')
.get()
.then((userData) {
user = User(
name: userData.data["name"],
username: userData.data["username"],
profilePhoto: userData.data["profilePic"],
);
}).catchError((e) {
print(e);
});
});
return user;
}
然后我有我的个人资料页面,我创建了将用户从 getUser() 设置为当前用户的函数,如下所示:
User me;
String myUID = "t4skPFRXcLPxAWvhHpaiPOfsrPI3";
@override
void initState() {
super.initState();
setUser();
}
......
Future<void> setUser() async{
me = await userManagment.getUser(myUID);
}
但是当我尝试使用 print 例如 print(me.name) 没有任何事情发生时,当我尝试将 networkImage 的 url 设置为 me.profilePhoto 时出现错误,告诉我它的 url 为空。
【问题讨论】:
-
这能回答你的问题吗? What is a Future and how do I use it?
-
@ChristopherMoore 我已经完成了您链接中的所有说明,但如果有什么事情我应该告诉我或者我做错了什么事情告诉我。
标签: flutter android-studio dart google-cloud-firestore