【发布时间】:2019-07-16 06:57:34
【问题描述】:
我们正在建立一个工作门户。我们有一个applications 集合,当用户申请工作时,我们会在其中创建一个文档。
现在,从 Android 应用客户端,我在两个不同的活动中收听同一个集合。我也开启了本地持久化。
现在,Firebase 是否了解它是由两个活动触发的同一个查询并为侦听器维护一个查询快照,还是创建两个快照?
【问题讨论】:
标签: android firebase google-cloud-firestore
我们正在建立一个工作门户。我们有一个applications 集合,当用户申请工作时,我们会在其中创建一个文档。
现在,从 Android 应用客户端,我在两个不同的活动中收听同一个集合。我也开启了本地持久化。
现在,Firebase 是否了解它是由两个活动触发的同一个查询并为侦听器维护一个查询快照,还是创建两个快照?
【问题讨论】:
标签: android firebase google-cloud-firestore
现在,Firebase 是否能够理解来自两个活动的相同查询并为侦听器维护一个查询快照,还是创建两个快照?
既然您说您已启用本地持久性,这意味着 Firebase 将在用户设备上创建所请求文档的本地副本。因此,启用这种持久性后,在离线时,执行相同查询的活动数量并不重要,您将始终从缓存中获取数据。
正如@brianbhsu 在他的评论中指出的那样,在在线时,您将始终查询在线 Firestore 实例,以便始终获得最新数据。
正如 Frank van Puffelen 在他的回答中提到的,Firestore 不会自动在本地存储所有可用数据:
@Mangesh 如果您使用两个不同的Query 对象从两个不同的活动中进行查询,那么这些查询将被视为两个不同的查询。
【讨论】: