Android 颤振载荷列表视图项异步
如何在每个异步任务之后刷新ListView项 我在firebase上有两个收藏需要访问,如果有其他方法,请提供建议,因为我是firebase和Flatter的新手 我的Android 颤振载荷列表视图项异步,android,firebase,flutter,dart,google-cloud-firestore,Android,Firebase,Flutter,Dart,Google Cloud Firestore,如何在每个异步任务之后刷新ListView项 我在firebase上有两个收藏需要访问,如果有其他方法,请提供建议,因为我是firebase和Flatter的新手 我的用户内部有一个名为收藏夹的集合,其中包含用户id字段(与文档id相同),我加载的ListView包含所有用户数据,但仅包含与该id匹配的数据(以避免无理由加载例如1000个用户=$$) 根据我的代码和运行窗口上的测试,我得到了每个用户的值,但我在应用程序上的ListView显示为空白。我试图放置一个设置状态,但应用程序会不断刷新
用户
内部有一个名为收藏夹
的集合,其中包含用户id
字段(与文档id相同),我加载的ListView包含所有用户数据,但仅包含与该id匹配的数据(以避免无理由加载例如1000个用户=$$)
根据我的代码和运行窗口上的测试,我得到了每个用户的值,但我在应用程序上的ListView显示为空白。我试图放置一个设置状态,但应用程序会不断刷新
我试图创建一个单独的函数,但我无法让它返回文档快照列表
多谢各位
FutureBuilder(
future: Firestore.instance.collection('users').document(id).collection('favorites').getDocuments(),
builder: (context, snapshot) {
if (snapshot.hasData) {
List<DocumentSnapshot> userDocs = [];
snapshot.data.documents.forEach((doc) async {
await Firestore.instance.collection('users').document(doc.documentID).get().then((user) {
userDocs.add(user);
});
});
return ListView(
children: userDocs.map((document) {
return buildItem(context, document);
}).toList(),
);
}
},
),
FutureBuilder(
future:Firestore.instance.collection('users').document(id).collection('favorites').getDocuments(),
生成器:(上下文,快照){
if(snapshot.hasData){
列出userDocs=[];
snapshot.data.documents.forEach((doc)异步{
等待Firestore.instance.collection('users').document(doc.documentID).get()。然后((user){
userDocs.add(用户);
});
});
返回列表视图(
子项:userDocs.map((文档){
返回构建项(上下文、文档);
}).toList(),
);
}
},
),
所以,在没有任何帮助的情况下,经过几周的研究,我终于完成了
stream:Firestore.instance.collection('u')。document(id)。collection('f')。snapshots()
returnmessagetile(ctx:context,doc:snapshot.data.documents[index])代码>
FutureBuilder
,它只获取与userId匹配的用户:
future:Firestore.instance.collection('u').doc(doc['userId']).get()
简单对吧 谢谢你发布你的答案,我想这和我遇到的问题很相似,但我无法解决。我有多个async/await,所以它有点不同,但我希望您的方法能起作用。