我的iOS应用程序使用Google的Firebase作为其后台。
由于我希望我的应用离线工作,我进行了设置:
FIRDatabase.database().persistenceEnabled = true
我的问题是,现在,通过观察我的数据库中的单个事件,我在我的2个测试设备上获得了不同的查询结果。对于每个设备:
因此它就像缓存永远不会失效一样,并且SDK永远不会尝试向服务器发送请求以查看是否发生了某些更新。
通过调用keepSynced
:
let myRef = FIRDatabase.database().reference(withPath: "foo/bar")
myRef.keepSynced(true)
myRef.observeSingleEvent(
of: .value,
with: { (snapshot) in
myRef.keepSynced(false)
// Do whatever
})
阅读Firebase's documentation about offline capabilities,我觉得同步总是基于网络可达性而发生,但似乎你需要手动询问同步,这感觉很尴尬。这是Google的SDK中的错误吗?我在滥用它吗?