首页 > 解决方案 > 如何从 Firestore 中检索特定范围的数据

问题描述

如何从 Firestore 检索一系列数据,例如 20 到 40 行?

我正在尝试这个

connect().collection("users").orderBy("email").startAt(20).limit(20)
                    .get()
                    .then((querySnapshot) => {
                      console.log(querySnapshot.docs.length);
                            }
                        }

                    })
                    .catch((error) => {
                        console.log("Error getting documents: ", error);
                    });

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


after函数查找适用索引中较低的所有文档。在您的代码示例中,它正在查找大于数字 20 的所有电子邮件地址。

不幸的是,Firebase 没有简单的方法来实现您的既定目标。但是,您可以检索前 20 个文档,然后使用指向最后一个文档的指针作为下一个查询的起点:

final firstTwenty = connect().collection("users")
    .orderBy("email")
    .limit(20)
    .get();

connect().collection("users")
    .orderBy("email")
    .startAfter(firstTwenty.docs[firstTwenty.docs.length - 1])
    .limit(20)
    .get()
    .then(...

推荐阅读