问题描述
我拥有大量数据,每当用户向下滚动时,我都需要携带十个物品,并将它们收集到我的代码中,有什么方法可以用来获得此结果。
解决方法
您在说的是分页,documentation中对此进行了讨论。
Firestore分页不支持数字偏移量。您必须根据上一页中最后一个文档中的信息来获得下一页。这就是startAfter()
用于构建查询的目的。
如果您想使用 Firebase 对数据进行分页,您可以执行以下操作(在 JavaScript 中):
let database = admin.firestore;
let snapshot = await database.collection('items')
.limit(5)
.offset(10)
.get();
此代码将检索前十项之后的五项。它有效,但 Firebase 的官方文档建议反对它,并补充说“您仍然需要为您抵消的所有读取付费。”虽然不理想,但它对于分页来说并不是一个糟糕的选择,假设您的普通用户不经常访问应用程序边缘的页面。
或者,您可以按照此 documentation 获取更有效的选项。