如何使用 GetX 使用 Firestore 流填充列表
Posted
技术标签:
【中文标题】如何使用 GetX 使用 Firestore 流填充列表【英文标题】:How to Populate List with Firestore stream using GetX 【发布时间】:2020-08-03 16:42:50 【问题描述】:我正在尝试填充 RxList (GetX Flutter package) 所以我可以在我的 Listview.builder 中显示实时数据。我尝试在我的 Getx 控制器中使用以下代码:
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
【问题讨论】:
【参考方案1】:只需使用 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());
【讨论】:
想问一下,如果我想在屏幕上对用户输入进行过滤并在 Firestore.collection where 条件下使用它,我该如何实现?以上是关于如何使用 GetX 使用 Firestore 流填充列表的主要内容,如果未能解决你的问题,请参考以下文章
如果我们在 GetX 上使用 bottomNavigationBar,如何使用内部导航
如何使用 GetX 订阅另一个 Controller 中的更改?
如何使用 GetX 包管理 Flutter Web URL 路由?