在iOS中为Firebase启用持久性时,我的观察者实际上会发生什么以及他们在技术层面上的表现如何?
我有个好主意,如何根据此https://firebase.google.com/docs/database/ios/offline-capabilities在较高级别上工作-Firebase本质上保留了可在脱机时访问的数据的缓存副本。
我不明白的是,我的观察员应该开枪多少次,并提供什么信息。
在启用了持久性的应用程序中,我注意到:
最好将其清除,以便我们知道应该是正常行为:)
最佳答案
实际上很简单。当您附加观察者时(无论使用observeEventType
还是observeSingleEventOfType
),Firebase都会:
但是,有一些细微之处可以解决:
ChildAdded
事件(例如/foo/bar),但不会获得一个Value
事件(例如/foo),直到我们从服务器获取了您要观察的位置的完整数据。 observeSingleEventOfType
,则明确地只请求一个事件,因此,如果您缓存了数据,则将发生#1但不会发生#2,这可能不是您想要的(您永远不会看到最新服务器数据)。 希望这可以帮助!