Firebase 如何仅从Firestore中的缓存读取数据?

Firebase 如何仅从Firestore中的缓存读取数据?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我在这里读了一些关于stackoverflow的答案,据说每次我们从Firestore获取文档时,SDK总是试图获取文档的在线版本,即使文档没有更改。这是结束在有更多的阅读计费,这在我看来是没有必要的,因为没有任何改变 我想要达到的目标 让我们假设一个包含5个文档的集合。当用户第一次打开应用程序时,我想支付5次读取。但是,当用户第二次打开应用程序时,我只想为已更改的文档支付读取操作。如果没有任何更改,我不想支付任何读取费用,我只想从缓存中读取数据。这可能吗?您问题中的关键短语是: 如果什么都没有

我在这里读了一些关于stackoverflow的答案,据说每次我们从Firestore获取文档时,SDK总是试图获取文档的在线版本,即使文档没有更改。这是结束在有更多的阅读计费,这在我看来是没有必要的,因为没有任何改变

我想要达到的目标


让我们假设一个包含5个文档的集合。当用户第一次打开应用程序时,我想支付5次读取。但是,当用户第二次打开应用程序时,我只想为已更改的文档支付读取操作。如果没有任何更改,我不想支付任何读取费用,我只想从缓存中读取数据。这可能吗?

您问题中的关键短语是:

如果什么都没有改变,我不想付任何费用

要确定缓存中的文档是否有更改,Firestore服务器需要读取这些文档。因此,你将为这些阅读付费

解决这个问题的唯一方法是自己控制过滤更改的文档


例如,如果在每个文档中都包含lastModified字段,则可以使用该字段仅从服务器检索新的/修改的文档,然后通过对本地缓存运行其他读取操作。

谢谢,弗兰克,但我不确定我是否理解了您答案的最后一部分。假设我有一个查询db.collectionusers.where大于lastModified,someDate。这将只从服务器检索新的/修改过的文档,这很好。但如何从服务器获取数据并同时从缓存中读取数据呢。这将是两个操作:一个更新缓存,然后对本地缓存运行另一个读取操作以显示UI。