Firestore 是不是会在页面加载时读取所有文档,即使它们没有更改?

Posted

技术标签:

【中文标题】Firestore 是不是会在页面加载时读取所有文档,即使它们没有更改?【英文标题】:Does Firestore read all documents on page load even if they havent changed?Firestore 是否会在页面加载时读取所有文档,即使它们没有更改? 【发布时间】:2021-05-31 08:58:57 【问题描述】:

我正在为新标签页开发一个 chrome 扩展,我正在尝试为该项目找到合适的数据库。让我无法使用 Firebase Firestore 的唯一问题是了解数据库如何处理读取。

基本上,每次用户打开一个新标签页时,我都需要获取大约 3000 个(非常小的)文档(希望从缓存中获取)。我的问题是,由于打开新标签页如此频繁,我将被收取荒谬的阅读量,因为 Firestore 总是在读取 3K 文档。

我的问题是,Firestore 是否足够聪明,可以判断数据库中的数据没有改变,客户端应该只从缓存中读取?

我阅读了有关离线持久性的所有内容,但这个问题仍然挥之不去!

感谢您的帮助!

【问题讨论】:

【参考方案1】:

当您启动一个监听器时,您首先从缓存中读取,然后从服务器中读取。缓存持久性here 解释了它的行为方式,但仅考虑侦听器处于侦听模式。即使在 30 次离线后,您仍需要为完整阅读付费。

我建议您阅读this。在读取大量数据时自行管理缓存以避免大量读取。

【讨论】:

感谢您链接文章!这确实有助于节省很多不必要的阅读!你个人有没有成功实现过这样的缓存策略? 我个人没做过。我尽量少读书。

以上是关于Firestore 是不是会在页面加载时读取所有文档,即使它们没有更改?的主要内容,如果未能解决你的问题,请参考以下文章

Firestore - 节省文档读取费用

检查文本区域是不是包含符号并删除符号后的所有内容

当 Firestore 字段更新时,Observables 会重新查询所有数据吗?

为啥下一个 js 在我构建时会在第一次加载时加载所有页面

Firebase Firestore 读取操作非常高

使用 ion-datetime 值更改更新 Firestore 文档