Google cloud platform Firestore:缓存的查询按配额计数

Google cloud platform Firestore:缓存的查询按配额计数,google-cloud-platform,google-cloud-firestore,Google Cloud Platform,Google Cloud Firestore,我只是在一个盒子/浏览器上进行简单的开发测试,就达到了配额限制,我想知道为什么Firestore没有发现我的数据在完整的收集读取之间没有变化,这应该很容易通过时间戳或计数器来确定,但它似乎正在这样做 问题是,我已经验证了(未更改集合的)唯一返回的快照具有fromCache:true元数据,并且我还可以在网络选项卡中看到未从服务器传输有问题的数据 然而,每个查询(F5页面刷新等)显然都是根据我的配额计算的,这意味着我目前只能更新代码(热模块重新加载)或以其他方式刷新大约8次,因为我在启动时对一个特

我只是在一个盒子/浏览器上进行简单的开发测试,就达到了配额限制,我想知道为什么Firestore没有发现我的数据在完整的收集读取之间没有变化,这应该很容易通过时间戳或计数器来确定,但它似乎正在这样做

问题是,我已经验证了(未更改集合的)唯一返回的快照具有fromCache:true元数据,并且我还可以在网络选项卡中看到未从服务器传输有问题的数据

然而,每个查询(F5页面刷新等)显然都是根据我的配额计算的,这意味着我目前只能更新代码(热模块重新加载)或以其他方式刷新大约8次,因为我在启动时对一个特定的3K文档大小的集合进行完整读取,随着应用程序的进行,订阅也会减少


文档说缓存读取不应计入配额——我缺少了什么?

这种行为可能是由于各种因素造成的,例如您正在使用的方法以及Firestore的缓存设置。例如,默认情况下get()将始终尝试从服务器获取信息,如果无法获取,则将使用缓存。这一点在上一节中提到过

很难给出更及时的建议,因为您没有共享任何代码,但是,我建议您检查信息,以便离线获取数据以及堆栈上的其他答案,例如,堆栈对此类行为有很好的解释


希望您觉得这很有用。

请参阅最后一条评论——如果您使用免费Spark计划,缓存查询可能会计入配额。

谢谢,@rsalinas。我已经看过了你提到的要点。我在上面添加了一条澄清意见。我对“离线获取数据”不感兴趣——我感兴趣的是在线场景中缓存的行为,当订阅请求之间没有数据更改时。看起来这正是正在发生的事情,因为所有元数据都符合预期,而我没有看到数据通过网络传输。问题是,即使考虑到以上所有因素,我的配额也会减少4321个“读数”(这肯定是一个错误的引导词…)。好吧,哇。这似乎不是技术问题,而是营销问题。我没有修改代码,但从免费的Spark计划升级到付费的Flame计划。现在,对于相同的读取,没有报告配额使用情况。看起来这是一种(显然可行的)让人们付钱的方式。我并不特别介意付费,但如果这确实是个问题,那么文档中肯定不透明。
示例:(1)集合A有4321条记录(2)缓存为空(3)订阅w/o筛选器(4)从服务器传输的数据(5)我们得到4321条文档的快照,4321条更改,fromCache:false(6)订阅生命周期内没有更新,因为数据是静态的(7)取消订阅(8)服务器上的数据没有更改(9)重新订阅(10)服务器上没有新数据(可能是clent和服务器之间上次更新的时间戳检查)(11)我们得到了4321条记录的快照,4321条来自缓存的更改:true(12)我们没有得到任何后续快照,由于数据没有更改
,如果您对计费有疑问,或者您的项目计费没有意义,请直接联系Firebase支持。