Google cloud firestore 当用户脱机时,如何在firestore中执行事务?

Google cloud firestore 当用户脱机时,如何在firestore中执行事务?,google-cloud-firestore,react-native-firebase,Google Cloud Firestore,React Native Firebase,我正在创建一个多页应用程序,在这里我需要创建和存储事务,即使用户处于脱机状态。我如何使用firestore实现这一点?我还需要一些关于如何在本地保存从firestore接收的数据的想法 当用户脱机时,如何在Firestore中执行事务 你不能!事务不支持脱机使用,无法缓存或保存以供以后使用。这是因为事务绝对需要与服务器进行往返通信,以确保事务中的代码成功完成。因此,您只能在联机时使用事务,因为事务依赖于网络 我还需要一些关于如何在本地保存从Firestore接收的数据的想法 根据Cloud Fi

我正在创建一个多页应用程序,在这里我需要创建和存储事务,即使用户处于脱机状态。我如何使用firestore实现这一点?我还需要一些关于如何在本地保存从firestore接收的数据的想法

当用户脱机时,如何在Firestore中执行事务

你不能!事务不支持脱机使用,无法缓存或保存以供以后使用。这是因为事务绝对需要与服务器进行往返通信,以确保事务中的代码成功完成。因此,您只能在联机时使用事务,因为事务依赖于网络

我还需要一些关于如何在本地保存从Firestore接收的数据的想法

根据Cloud Firestore的官方文档,关于:

对于Android和iOS,默认情况下启用脱机持久性。要禁用持久性,请将PersistenceEnabled选项设置为false

对于web,默认情况下禁用脱机持久性。要启用持久性,请调用enablePersistence方法。云Firestore的缓存不会在会话之间自动清除。因此,如果您的web应用程序处理敏感信息,请确保在启用持久性之前询问用户是否在受信任的设备上

重要提示:对于web来说,离线持久性是一项实验性功能,只有Chrome、Safari和Firefox web浏览器支持。此外,如果用户打开指向同一Cloud Firestore数据库的多个浏览器选项卡,并且启用了脱机持久性,则Cloud Firestore将仅在第一个选项卡中正常工作

编辑:

Firestore SDK for Android具有默认启用的。因此,当没有连接时,所有读取操作都将来自缓存。因此Firestore提供了此功能来处理脱机数据。这意味着,如果用户尝试在脱机时添加/删除文档,则每个操作都会添加到队列中。一旦用户恢复连接,脱机时所做的每项更改都将在Firebase服务器上更新。换句话说,所有查询都将在服务器上提交


还请注意,脱机时,尚未同步到服务器的挂起写入将保留在队列中。如果您在没有联机同步的情况下执行了太多的写入操作,那么该队列将快速增长,不仅会减慢写入操作,还会减慢读取操作。因此,我建议使用此数据库以实现其联机功能。

您不能在脱机时运行事务,但如果您认为您的数据在脱机时没有更改,则可以从缓存中获取数据,并使用dbRef.addSnapshotListenerMetadataChanges.INCLUDE和dbRef.update将其更新。

谢谢@alex。我已经看过那些文件了。我需要知道如何获取这些持久化数据。你也能帮我做一些离线的事情吗。如果firestore不支持脱机事务,那么我应该如何执行脱机任务?您好!我能帮你了解其他信息吗?如果你认为我的答案对你有帮助,请考虑通过点击复选来接受它。✔️ 在投票箭头下方的左侧。应该把颜色改成绿色。我会很感激的。谢谢