【发布时间】:2018-02-08 20:38:57
【问题描述】:
我有一个离线数据丢失的场景,但它似乎应该已经同步到服务器。
场景:
用户登录到我们的 Firebase 应用程序。按照 Firebase 的建议打开持久性:
Database.database().isPersistenceEnabled = true
如果用户在离线时杀死应用并重新启动它,他/她可以继续使用该应用离线创建和查询数据。当用户重新获得网络连接时,数据将同步。在这一点上我们很好。
但是,如果用户在离线时退出应用程序,他/她将需要重新获得网络连接才能登录。届时应用程序将获得一个新的身份验证令牌。但是之前在离线时使用第一个登录会话/令牌保存的数据尚未同步。那个数据丢失了吗?或者有没有办法告诉 Firebase 使用以前的或新的令牌同步该离线数据?
tl;博士:
如何获取在注销前离线创建的 firebase 数据,以便在建立连接后进行同步?
注意:我没有使用交易。我知道重新启动应用时事务会丢失。
【问题讨论】:
-
丢失的数据是否受安全规则保护?
-
没有。如果用户尚未注销,则在重新连接时数据会同步。编辑:没有与此数据相关的规则。
-
如果您得到的是在设备同步之前可能会从设备中删除数据,不,数据不会被删除。它只是永远不会到达服务器。
-
为了澄清我上面的 cmets,是的,我的规则要求用户经过身份验证才能读取/写入数据。
标签: ios firebase firebase-realtime-database synchronization