我正在尝试填充RxList(GetX Flutter包),以便可以在Listview.builder中显示实时数据。我尝试在Getx Controller中使用以下代码:
final videos = List < Video > ().obs;
@override
void onReady() async {
videos.bindStream(loadVideos());
super.onInit();
}
Stream <List<Video>> lista() {
Stream <QuerySnapshot> stream =
Firestore.instance.collection('videos').snapshots();
return stream.map((qShot) => qShot.documents
.map((doc) => Video(
title: doc.data['title'],
url: doc.data['url'],
datum: doc.data['datum']))
.toList());
}
loadVideos() async {
await
for (List < Video > tasks in lista()) {
videos.addAll(tasks);
}
}
但是我收到以下异常:
'Future'不是'Stream <Iterable>'类型的子类型
只需使用BindStream收听您的Stream,如下所示:
final videos = List<Video>().obs;
@override
void onInit() async {
videos.bindStream(lista());
super.onInit();
}
Stream <List<Video>> lista() {
Stream <QuerySnapshot> stream =
Firestore.instance.collection('videos').snapshots();
return stream.map((qShot) => qShot.documents
.map((doc) => Video(
title: doc.data['title'],
url: doc.data['url'],
datum: doc.data['datum']))
.toList());
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句