【发布时间】:2018-11-06 09:08:21
【问题描述】:
我目前正在将 Cloud Firestore 与 Streambuilder 小部件一起使用,以便使用 Firestore 文档填充 ListView 小部件。
new StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('videos').limit(10).snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return new Center(
child: new CircularProgressIndicator(),
);
return new ListView(
children: snapshot.data.documents.map((DocumentSnapshot document) {
new Card(child: ...)
}).toList(),
);
},
);
但是,此设置仅允许查询前 x 个结果(在本例中 x=10),其中 x 是一个固定数字,迟早会超过用户希望看到的卡片小部件的数量他或她向下滚动。
现在是否可以查询前 x 个结果,并在用户达到滚动阈值后从 Cloud Firestore 查询下一个 x+10 个结果等等?
这将允许动态列表长度,这也将有利于 Firestore 数据消耗。
【问题讨论】:
-
这绝对是可能的,但 API 中没有预先构建任何内容。您必须记住第一页上的最后一个文档,然后
startAfter()与该文档一起获得第二页文档。
标签: dart google-cloud-firestore flutter