Ali*_*lli 15 pagination large-data firebase google-cloud-platform google-cloud-firestore
我有一个包含 10,000 个文档的大型 Firestore 集合。
我想通过一次分页和过滤 25 个结果来在表格中显示这些文档。
我的想法是,为了限制“读取”(从而降低成本),一次仅请求 25 个文档(使用“限制”方法),并在页面更改时加载接下来的 25 个文档。
但有一个问题。为了显示页数,我必须知道文档的总数,并且我将被迫查询所有文档才能找到该数字。
我可以选择无限滚动,但即使在这种情况下,我也永远不会知道我的过滤器找到的结果总数。
另一种选择是在开始时请求所有文档,然后使用客户端进行分页和过滤。
那么,在这种情况下通过优化性能和成本来显示数据的最佳方式是什么?
谢谢!
您将在 Firestore 文档中找到专门用于使用查询游标对数据进行分页的页面。
我在这里粘贴“将查询游标与方法结合起来”的示例limit()
。
var first = db.collection("cities")
.orderBy("population")
.limit(25);
return first.get().then(function (documentSnapshots) {
// Get the last visible document
var lastVisible = documentSnapshots.docs[documentSnapshots.docs.length-1];
console.log("last", lastVisible);
// Construct a new query starting at this document,
// get the next 25 cities.
var next = db.collection("cities")
.orderBy("population")
.startAfter(lastVisible)
.limit(25);
});
Run Code Online (Sandbox Code Playgroud)
如果您选择无限滚动,您可以通过查看 的值轻松知道是否已到达集合的末尾documentSnapshots.size
。如果它低于 25(示例中使用的值),您就知道已到达集合末尾。
如果您想显示集合中的文档总数,您应该使用聚合查询。
归档时间: |
|
查看次数: |
25999 次 |
最近记录: |