首页 > 解决方案 > 当收集有大数据 ~ 6K 文档时,Firestore 创建查询需要很长时间

问题描述

我正在使用 Firestore 并将我的数据保存到各种集合中。但是其中 1 个集合有 appx 6.2k 个文档,执行创建查询大约需要 2-5 分钟。而其他文档较少的集合则需要不到 10 秒的时间。

我正在使用带有 JS 的 Firestore。已经尝试过 .set 和 .add 方法,但这需要时间。

使用类似:

firestore.collection("feeds").add({
    title: "Holiday Celeberation",
    country: "India"
})
.then((docRef) => {
    console.log("Document written with ID: ", docRef.id);
})
.catch((error) => {
    console.error("Error adding document: ", error);
});

标签: javascriptangularfirebasegoogle-cloud-platformgoogle-cloud-firestore

解决方案


当收集有大数据 ~ 6K 文档时,Firestore 创建查询需要很长时间

Firestore 中的所有内容都与查询返回的文档数量有关。既然您说您正在尝试阅读约 6K 文档,那确实是预期的行为。

Firestore 中的查询性能取决于您请求的文档数量,而不是您搜索的文档数量。无论您是在 1000 个文档的集合中搜索 10 个文档,还是在包含 100 个 MIL 文档的集合中搜索,响应时间总是相同的。但是,下载大约 6K 文档的整个集合确实是个坏主意。除了需要这么长时间之外,没有人会对如此大量的数据感兴趣。我也很惊讶您没有收到内存不足错误。

因此,您拥有的解决方案是以较小的块下载该数据。这种技术称为分页。因此,您应该始终限制您获得的数据,并尝试仅显示适合可见空间的数据。


推荐阅读