首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase缓存: Firebase缓存查询结果还是维护脱机数据库?

Firebase缓存: Firebase缓存查询结果还是维护脱机数据库?
EN

Stack Overflow用户
提问于 2019-07-31 13:45:49
回答 1查看 771关注 0票数 0

对我来说,防火墙缓存仍然是个谜。

我用两种不同的方法查询同一个实时数据库。数据库启用了持久性。

假设有6条目1, 2, 3, 4, 5, 6

  1. 获取最后5个条目的单个值侦听器(始终从缓存返回,因为启用了持久性) [ 2, 3, 4, 5, 6 ]
代码语言:javascript
复制
FirebaseDatabase.getInstance().getReference(path).query.orderByKey().limitToLast(count)
  1. 另一个值侦听器,如果将7添加到上面的列表中,则在上次获取查询后获取值(返回最新值),则返回7

但是,当我第二次运行第一个查询时,它返回相同的值[2, 3, 4, 5, 6],而如果firebase缓存值而不是查询结果,则应该返回3-7

EN

回答 1

Stack Overflow用户

发布于 2019-07-31 14:15:56

Firebase实时数据库和Firestore都是本地缓存数据。下载数据的方式和时间的细微差别各不相同,但在实时数据库中基本上遵循了这个简化的模型:

  • 第一次在新路径上注册侦听器时,将从服务器下载数据。请注意,如果多个侦听器位于同一子树上,则它们只被下载一次(例如,/foo和/foo/bar只执行一次下载,因为/foo/bar可以重用/foo的数据),因为它们只使用来自父节点的数据),
  • 从那时起,客户端向服务器发送表示其当前数据的散列,并且只接收delta(已更改的记录)。
  • 这仅适用于使用on()操作,而不是一次()操作。
  • 如果启用离线持久性,即使应用程序以脱机模式启动,也会有一个本地缓存的数据副本。然而,当应用程序上线时,它仍然需要初始下载数据,而不使用增量。

Firestore的工作方式有点不同,我不确定其中的细微差别,但我也将在这里尝试将这些文档记录下来,以供参考。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57292302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档