【发布时间】:2019-08-07 17:23:16
【问题描述】:
- 我使用的是firebase JS SDK,启用了offline persistence。这将自动将我检索到的文档缓存在 JS SDK 中。
- 我执行此查询:
// once
firebase.firestore().doc('path/to/doc').get()
// twice
firebase.firestore().doc('path/to/doc').get()
我的问题是:
- 在启用离线持久性的情况下,Firebase 是否会向我收取两次读取费用。因为我相信第二次读取将来自离线缓存而不进行网络调用?
- 当离线持久性被禁用时,Firebase 会向我收费一次还是两次?
我的用例
用户使用来自客户的“任务”打开一个网络应用程序。
每个任务都有一个带有文档参考的client 字段。
- 检索所有任务(例如 500 次读取)
- 检索每个任务的每个客户端文档(另外 500 次读取,即使某些客户端相同)
所以如果只有 20 个客户端,我宁愿在用户打开应用时只有 520 次读取而不是 1000 次读取。
重新设计我的数据结构以将相关的客户端信息保存在任务本身而不是引用上是否更好,或者 Firebase JS SDK 是否足够聪明,不会重复检索它刚刚检索到的同一个文档。
PS:我在这里发现了一个类似的问题:
Does Firestore charge Cloud Function Get reads per retrieved documents?
但它只是没有我正在寻找的确切信息。
【问题讨论】:
标签: firebase google-cloud-firestore