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 是不是会在页面加载时读取所有文档,即使它们没有更改?的主要内容,如果未能解决你的问题,请参考以下文章