【发布时间】:2020-11-19 17:39:35
【问题描述】:
我有这个方法:
Future<AppUser> _getUser(String documentId) async {
var document = await firestore.collection('customers').doc(documentId);
document.get().then((DocumentSnapshot documentSnapshot) {
print(documentSnapshot.data());
});
AppUser bruceUser = AppUser(userId: 'user006',);
return bruceUser;
}
在它下面,我有一个使用这种方法的变量:
AppUser _user = await _getUser(document.id);
但是,这会返回以下错误:
Error: 'await' can only be used in 'async' or 'async*' methods.
我在这里做错了什么?我不想将 _user 更改为 Future,因为它会使代码进一步复杂化,那么为什么 await 不起作用?
【问题讨论】:
-
你调用的函数
AppUser _user = await _getUser(document.id);怎么样?是异步的吗? -
@JustCode,没有。这是一个
snapshot.data.docs.map((DocumentSnapshot document){函数。我试着让它异步,但它返回Error: The argument type 'List<Future<UstaTile>>' can't be assigned to the parameter type 'List<Widget>' -
那就是问题所在,你试试
_getUser(document.id).then((user){//code here}) -
@JustCode 我把快照放在
then吗? -
这能回答你的问题吗? What is a Future and how do I use it?
标签: flutter