• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - Firebase 会在重新连接注销后同步离线数据吗?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:39:10 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个离线数据丢失的场景,但它似乎应该已经同步到服务器。

场景:

用户登录到我们的 Firebase 应用程序。按照 Firebase 的建议打开持久性:

Database.database().isPersistenceEnabled = true

如果用户在离线时杀死应用并重新启动它,他/她可以继续使用该应用离线创建和查询数据。当用户重新获得网络连接时,数据将同步。在这一点上我们很好。

但是,如果用户在离线时退出应用程序,他/她将需要重新获得网络连接才能登录。届时应用程序将获得一个新的身份验证 token 。但是之前在离线时使用第一个登录 session / token 保存的数据尚未同步。那个数据丢失了吗?或者有没有办法告诉 Firebase 使用以前的或新的 token 同步该离线数据?

timeline of sync

tl;博士:

如何获取在注销前离线创建的 firebase 数据,以便在建立连接后进行同步?

注意:我没有使用交易。我知道重新启动应用时事务会丢失。



Best Answer-推荐答案


在 Firebase 获得支持后,我学到了这一点。如果您的安全规则要求对用户进行身份验证,则以下情况为真。

离线收集的数据需要身份验证 token ,以便在获得连接后将数据复制回服务器。 firebase.auth().signOut() 命令会破坏 token ,因此用户的数据会丢失。

为了避免丢失数据,您必须阻止您的应用注销,或自行单独存储离线数据,并提供一种方法让该数据重新提交/同步到新身份验证 token 上的 Firebase。

这是 Firebase 希望改进的领域。我的想法是 Firebase 应该根据用户仍然登录时使用的 token 同步数据。仅仅因为用户已注销,他/她在数据收集时已登录,即使用户处于离线状态。有人告诉我这将是一个功能请求。

关于ios - Firebase 会在重新连接注销后同步离线数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45972143/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap