首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase如何处理脱机时执行的事件?

Firebase如何处理脱机时执行的事件?
EN

Stack Overflow用户
提问于 2013-11-14 11:00:34
回答 1查看 1.4K关注 0票数 4

来自Firebase的常见问题解答:

如果我失去了网络连接,我的应用程序会怎么样? 一旦恢复连接,Firebase就会透明地重新连接到Firebase服务器。同时,由应用程序在本地完成的所有Firebase操作都会立即触发事件(.)。一旦连接重新建立,您将收到适当的事件集,以便您的客户端“赶上”当前服务器状态

那么,如果我离线并继续修改本地数据,然后恢复联机,其他客户端执行了不同的更改,会发生什么情况呢?哪一个最终会得救?

如果服务器上的数据被覆盖,是否意味着旧数据可以替换较新的数据?

如果联机添加的较新数据保持不变,是否知道脱机时提交的数据已被丢弃?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-14 18:30:31

当您的客户端重新联机时,在脱机期间并写入数据之后,这些更改的行为将取决于您用来编写这些更改的方法:

  • set()setWithPriority()remove()push()方法是最后写的赢家.这意味着,如果脱机客户端A在t=0进行更改,而联机客户端B在t=10上进行更改,则脱机客户端A的更改将在重新连接时覆盖客户端B的更改。请注意,这特别适用于所做的更改(即将/a/b/c设置为1),而不是整个Firebase。
  • 然而,transaction()方法是专门为处理冲突而构建的。当脱机客户端A重新连接时,您的事务更新功能将重新运行,并将新的更改应用于您的Firebase数据。

在大多数应用程序中,用户将数据附加到列表或修改单个用户状态,而不是修改相同的数据。如果多个用户正在修改相同的数据,无论离线与否,您都希望使用transaction()

一般来说,Firebase是用来自动处理离线和联机的,所以您不需要编写应用程序代码来检测和处理这种情况。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19975921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档