[英]Getting previous documents using firestore pagination
我正在使用 Firestore 数据库来存储我的加密交易。 由于它们很多,我必须使用.limit(numberOfTrades)
查询加载它们。
我的查询: const tradesRef = firebase.firestore().collection("trades").limit(15);
在我的 useEffect 中:
useEffect(() => {
tradesRef
.where("type", "==", "fiveMinutes")
.get()
.then((collections) => {
const tradesData = collections.docs.map((trade) => trade.data());
const lastDoc = collections.docs[collections.docs.length - 1];
setTrades(tradesData);
setLastTrades(lastDoc);
});
setDataLoading(false);
}, [filter]);
但是,我确实需要分页才能加载下一组交易。 next 的分页已经实现并且相当简单。 这是我用于下一页的 function:
const fetchMore = () => {
tradesRef
.startAfter(lastTrades)
.get()
.then((collections) => {
const tradesData = collections.docs.map((trade) => trade.data());
const lastDoc = collections.docs[collections.docs.length - 1];
setTrades(tradesData);
setLastTrades(lastDoc);
});
}
现在我想弄清楚如何实现获取前 12 笔交易的前一页查询。 我已经研究并实施了一些查询,但我什至没有接近解决问题。 任何帮助,将不胜感激。
如果你想向后分页,你需要使用以下组合:
.endBefore(firstItemOnNextPage)
.limitToLast(12)
所以firstItemOnNextPage
是第 N+1 页上的第一个项目,您从那里向后分页。 然后您要在该锚点项目之前询问最后 12 个项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.