android – 离线模式下的Firebase实时数据库不一致行为

android – 离线模式下的Firebase实时数据库不一致行为,第1张

概述我在我的应用中使用Firebase实时数据库.它运作得很好,我对此非常满意.但最近我碰到了一个边缘案例,因为我的一些用户正在丢失他们的数据. 场景#1 用户使用Internet连接登录应用程序(Firebase身份验证),并将一些数据添加到数据库. 用户通过互联网连接注销,然后再次登录,之前存储的数据按预期存在.互联网连接可用,数据已同步到服务器. 情景#2 现在用户关闭了他/她的互联网连接.在互 我在我的应用中使用Firebase实时数据库.它运作得很好,我对此非常满意.但最近我碰到了一个边缘案例,因为我的一些用户正在丢失他们的数据.

场景#1

用户使用Internet连接登录应用程序(Firebase身份验证),并将一些数据添加到数据库.

用户通过互联网连接注销,然后再次登录,之前存储的数据按预期存在.互联网连接可用,数据已同步到服务器.

情景#2

现在用户关闭了他/她的互联网连接.在互联网连接关闭时,向数据库添加更多数据并注销应用程序.

现在,用户重新打开他/她的互联网连接,并以与上面完全相同的方式登录应用程序.

现在,用户看不到应用程序处于脱机模式时添加的任何数据.我有setPersistenceEnabled(true),它在正常情况下完美运行.

问题

问题是当用户处于脱机模式时,持久性会失败,将一些数据添加到数据库(由于没有互联网而不会同步到服务器),并在离线模式下注销,然后再次登录.

这是一个边缘案例,但我的一些用户已经面临这种情况,并且由于这个错误而丢失了他们有价值的数据.如何解决这个问题?它是Firebase数据库的默认行为吗?如果是这样,有什么解决方法吗?

解决方法 通过我的应用程序,它的确如此.

来自Firebase文档
https://firebase.google.com/docs/database/android/offline-capabilities


如果我们的应用使用Firebase身份验证,则客户端将在重新启动时保留用户的身份验证令牌.如果在我们的应用程序脱机时auth令牌到期,客户端将暂停我们的写入 *** 作,直到我们重新进行身份验证,否则我们的写入可能会因安全规则而失败.
..

这意味着如果您在联机时退出应用程序,则应用程序不会在签出之前同步您进行身份验证的条目.

只有选项不会离线注销​​.

总结

以上是内存溢出为你收集整理的android – 离线模式下的Firebase实时数据库不一致行为全部内容,希望文章能够帮你解决android – 离线模式下的Firebase实时数据库不一致行为所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1125925.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存