Firebase Firestore snapshost()监听器是否会在每次应用程序重新启动时读取每个数据?

Firebase Firestore snapshost()监听器是否会在每次应用程序重新启动时读取每个数据?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,使用firestoresnapshot()并设置侦听器时,Cloud firestore会向您的侦听器发送数据的初始快照,然后在每次文档更改时发送另一个快照 但是,如果我关闭并重新打开应用程序,firestore是否会读取其已查询的所有数据,或者是否存在内部同步系统(例如,如果他们存储文档元数据,如updatedAt他们只能读取自x以来未更新的文档) 换句话说。如果我使用onSnapshot()listener,我将首先读取x个文档,然后每次文档更改时读取1个文档。我的问题是:如果我关闭应用程序

使用
firestore
snapshot()
并设置侦听器时,Cloud firestore会向您的侦听器发送数据的初始快照,然后在每次文档更改时发送另一个快照

但是,如果我关闭并重新打开应用程序,firestore是否会读取其已查询的所有数据,或者是否存在内部同步系统(例如,如果他们存储文档元数据,如
updatedAt
他们只能读取自x以来未更新的文档)


换句话说。如果我使用
onSnapshot()
listener,我将首先读取x个文档,然后每次文档更改时读取1个文档。我的问题是:如果我关闭应用程序并且文档发生更改,那么当我打开应用程序时,是读取1还是x+1

这对我来说很重要,因为我有一大堆初始电话,我想知道这会如何影响成本($)


了解数据建模及其对成本的影响也很重要。

每次对服务器执行新查询(这是默认设置)时,都需要读取一次,并且必须传输文档。它将不使用缓存,除非没有连接,或者您专门将缓存作为查询的目标。退出并返回应用程序根本不会改变这种行为


我建议您阅读以下内容:

每次对服务器执行新查询(这是默认设置)时,都需要阅读一次,并且必须传输文档。它将不使用缓存,除非没有连接,或者您专门将缓存作为查询的目标。退出并返回应用程序根本不会改变这种行为


我建议阅读以下内容:

这取决于听众的类型

OnChange()
将在数据更改时只读

addListenerForSingleValueEvent
将只检查一次,如果是
onCreate
部分,将立即执行


addValueEventListener
将持续检查,但如果数据发生更改,将以只读方式记录

这取决于侦听器的类型

OnChange()
将在数据更改时只读

addListenerForSingleValueEvent
将只检查一次,如果是
onCreate
部分,将立即执行


addValueEventListener
将不断进行检查,但如果数据发生变化,将以只读方式记录

本文并没有真正回答这个问题。当您有一个侦听器和一个文档更改时,您将只有一个读取。如果您设置了一个初始侦听器,那么每次文档更改都会读取X个文档(取决于最初返回的数量)+1个。但是,如果您在关闭应用程序之前已经设置了侦听器,则不清楚它是否重新读取初始数据集。他们可以很好地使用同步元数据来做这件事,就像通常在离线的第一个dbs中做的那样。如果我使用
snapshots
listener,我最初会收到x个文档,然后每次文档更改时都会收到1个文档。我的问题是:如果我关闭了应用程序,1个文档发生了更改,那么当我打开应用程序时,是1读取还是x+1?我在这里借用了你的答案:更多快照侦听器不允许你提供源。所以这篇文章与我的问题有点无关。虽然这篇文章似乎回答了乔纳森的问题,所以这很好。这篇文章不是为了回答这个问题——这里提供的文本回答了这个问题。本文旨在添加有关缓存系统实际工作方式的信息,因为这是在进行查询时防止读取成本的唯一方法。我不清楚你所说的“x+1”是什么意思。文档读取只是一个简单的读取操作。没有比这更复杂的了。文档不保留历史记录,这会导致更多的读取。他们只有当前状态。本文并没有真正回答这个问题。当您有一个侦听器和一个文档更改时,您将只有一个读取。如果您设置了一个初始侦听器,那么每次文档更改都会读取X个文档(取决于最初返回的数量)+1个。但是,如果您在关闭应用程序之前已经设置了侦听器,则不清楚它是否重新读取初始数据集。他们可以很好地使用同步元数据来做这件事,就像通常在离线的第一个dbs中做的那样。如果我使用
snapshots
listener,我最初会收到x个文档,然后每次文档更改时都会收到1个文档。我的问题是:如果我关闭了应用程序,1个文档发生了更改,那么当我打开应用程序时,是1读取还是x+1?我在这里借用了你的答案:更多快照侦听器不允许你提供源。所以这篇文章与我的问题有点无关。虽然这篇文章似乎回答了乔纳森的问题,所以这很好。这篇文章不是为了回答这个问题——这里提供的文本回答了这个问题。本文旨在添加有关缓存系统实际工作方式的信息,因为这是在进行查询时防止读取成本的唯一方法。我不清楚你所说的“x+1”是什么意思。文档读取只是一个简单的读取操作。没有比这更复杂的了。文档不保留历史记录,这会导致更多的读取。它们只有当前状态。