javascript - 实时更改 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++;
});
});
解决方案
根据您的评论“您要处理DocumentSnapshot
查询返回的 5 秒,然后停止 ( forEach()
) 循环。”
我建议您只查询 5 个文档,而不是查询集合中的所有文档,并在您处理了 5 个文档后停止“处理”它们(即退出循环)。
为此,您应该使用该limit()
方法,如下所示:
db.collection("cities")
.limit(5)
.get()
.then((querySnapshot) => {...});
除了可能节省一些下载时间之外,您还将节省一些阅读成本。
推荐阅读
- php - 将查询结果以 json 格式保存到网络驱动器上的文本文件中
- sql - 有没有办法在 bigquery 中执行动态查询?
- python - Matplotlib 圆圈作为箭头
- python - 在 Python 中从 SQL 中提取 1 列数据
- docker - 如何在 RabbitMQ 未上线时添加 RabbitMQ 用户
- woocommerce - 将 Mailchimp (MC4WP) 复选框添加到 Woocommerce 我的帐户注册表单
- nlp - 使用 BERT 词嵌入生成同义词或相似词
- html - 水平滚动的图像上的文本
- vim - 我如何使用 Vim 的 escape()
作为它的第一个论点? - mysql - 如果我有多行并且 SQL 中的字符串长度不同,如何将字符串分成列?