繁体   English   中英

使用 firestore 分页获取以前的文档

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM