gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:38 25 4
gpt4 key购买 nike

我在我的应用中使用 Firebase 实时数据库。它工作得很好,我对它很满意。但最近我遇到了一个边缘案例,因为我的一些用户正在丢失他们的数据。

场景#1

用户通过互联网连接登录到应用程序(Firebase 身份验证),并将一些数据添加到数据库。

用户在打开 Internet 连接 的情况下注销,然后再次登录,并且之前存储的数据按预期存在。互联网连接可用,数据已同步到服务器。

场景 #2

现在用户关闭了他/她的互联网连接。向数据库添加更多数据,并在互联网连接关闭时退出应用。

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

现在用户看不到应用处于离线模式时添加的任何数据。我有 setPersistenceEnabled(true),它在正常情况下工作得很好。

问题

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

这是一个边缘案例,但我的一些用户已经遇到过这个问题,并且因为这个错误而丢失了他们宝贵的数据。如何解决这个问题?这是 Firebase 数据库的默认行为吗?如果是这样,是否有任何解决方法?

最佳答案

在我的应用程序中,它确实如此。

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

...如果我们的应用程序使用 Firebase 身份验证,客户端将在重新启动时保留用户的身份验证 token 。如果在我们的应用程序离线时授权 token 过期,客户端将暂停我们的写入操作,直到我们重新进行身份验证,否则我们的写入可能会由于安全规则而失败。..

这意味着如果您在联机时退出应用程序,应用程序不会同步您在退出前验证的条目。

唯一的选择是不离线退出。

关于android - 离线模式下的 Firebase 实时数据库不一致行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40697088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com