Firestore iOS:仅缓存离线写入

问题描述 投票:0回答:1

我的数据库保存了大量对象,因此出于性能原因,我需要禁用持久缓存:

let settings = FirestoreSettings()
settings.cacheSettings = MemoryCacheSettings()
Firestore.firestore().settings = settings

禁用缓存后,脱机写入是否仍会保存并在以后启动应用程序时恢复?或者退出应用程序时它们会丢失吗?

我的目标是禁用完整数据集的缓存,并且仅缓存离线编辑。

ios swift firebase google-cloud-firestore
1个回答
0
投票

关于离线访问的文档没有说任何关于改变离线写入的效果,只说离线读取。 因此,您显示的代码仅影响读取行为。 写入行为保持不变(意味着离线写入继续累积,直到应用程序能够重新上线并且队列能够清除)。

即使您完全禁用离线缓存,文档仍然明确指出:

写入操作将排队,直到重新启用网络访问。

这样想:对于任何应用程序来说,欺骗最终用户认为他们的更改已提交,结果他们稍后回来并意识到一切实际上都丢失了,这将是非常糟糕的。 禁用写入持久性恰恰会带来这种情况的风险,这就是为什么它不是一个选项。

© www.soinside.com 2019 - 2024. All rights reserved.