【问题标题】:Firebase cache when still online, iOS仍然在线时的 Firebase 缓存,iOS
【发布时间】:2026-01-24 19:45:01
【问题描述】:

例如,在iOS Firebase SDK 中,如果我执行.ChildAdded 查询,然后再次执行相同的查询,该查询会在本地缓存上执行还是会再次命中Firebase 服务器?

【问题讨论】:

    标签: ios firebase


    【解决方案1】:

    一般来说:Firebase 客户端会尽量减少下载数据的次数。但它也尽量减少它使用的内存/磁盘空间量。

    确切的行为取决于许多因素,例如另一个侦听器是否在该位置保持活动状态以及您是否使用磁盘持久性。如果您有两个相同(或重叠)数据的侦听器,则更新只会下载一次。但是,如果您删除某个位置的最后一个侦听器,则该位置的数据将从(内存和/或磁盘)缓存中删除。

    如果没有看到完整的代码,很难判断您的情况会发生什么。

    或者:您可以通过启用 Firebase 的日志记录来自行检查 [Firebase setLoggingEnabled:YES];

    【讨论】:

    • 那么让 .ChildAdded 侦听器在多个数据节点上保持打开状态是个坏主意吗?我想我会将数据存储在 Core Data 或一些自定义序列化文件存储中。我真的不希望 Firebase 被频繁地查询相同的数据。