首页 > 解决方案 > 实时更改 Firestore QuerySnaphot 大小

问题描述

有没有办法在运行时有条件地将其更改querySnapshot.size为 0,以便forEach()只运行指定的时间?这样做会是一个好习惯吗?

db.collection("cities").get().then((querySnapshot) => {
    let count = 0;
    querySnapshot.forEach((doc) => {
        if(count === 5) {
            //change querySnapshot.size
        }
        console.log(doc.id, " => ", doc.data());
        count++;
    });
});

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


根据您的评论“您要处理DocumentSnapshot查询返回的 5 秒,然后停止 ( forEach()) 循环。”

我建议您只查询 5 个文档,而不是查询集合中的所有文档,并在您处理了 5 个文档后停止“处理”它们(即退出循环)。

为此,您应该使用该limit()方法,如下所示:

db.collection("cities")
.limit(5)
.get()
.then((querySnapshot) => {...});

除了可能节省一些下载时间之外,您还将节省一些阅读成本。


推荐阅读