我的数据库保存了大量对象,因此出于性能原因,我需要禁用持久缓存:
let settings = FirestoreSettings() settings.cacheSettings = MemoryCacheSettings() Firestore.firestore().settings = settings
禁用缓存后,脱机写入是否仍会保存并在以后启动应用程序时恢复?或者退出应用程序时它们会丢失吗?
我的目标是禁用完整数据集的缓存,并且仅缓存离线编辑。
关于离线访问的文档没有说任何关于改变离线写入的效果,只说离线读取。 因此,您显示的代码仅影响读取行为。 写入行为保持不变(意味着离线写入继续累积,直到应用程序能够重新上线并且队列能够清除)。
即使您完全禁用离线缓存,文档仍然明确指出:
写入操作将排队,直到重新启用网络访问。
这样想:对于任何应用程序来说,欺骗最终用户认为他们的更改已提交,结果他们稍后回来并意识到一切实际上都丢失了,这将是非常糟糕的。 禁用写入持久性恰恰会带来这种情况的风险,这就是为什么它不是一个选项。