为了账号安全,请及时绑定邮箱和手机立即绑定

当我们使用 ref.push 写入 firebase 数据库 javascript 时会触发哪个事件

当我们使用 ref.push 写入 firebase 数据库 javascript 时会触发哪个事件

MYYA 2021-10-14 12:57:09
当我们使用 javascript 在 firebase 中工作时,在我们使用 ref.push 或 ref.set 插入数据后会触发哪个事件。我想知道我的数据是否插入我还想在用户在 Firebase 中插入数据时断开互联网连接时抛出错误我还没有在互联网上看到任何功能或任何方法告诉我数据是否成功插入。
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

Firebase 实时数据库不会将缺乏互联网连接视为错误情况。相反,它会在给定条件下继续发挥其最佳能力。

当您执行写入操作(与setpushupdate,或remove),而没有互联网连接:

  1. 第一个客户端立即触发本地事件,以便您的应用程序可以为新的/更新的数据更新 UI。

  2. 然后,一旦连接恢复,它就会将写入操作排队以进行传送。

  3. 连接恢复后,客户端会按照客户端执行的顺序发送所有挂起的写入操作。

  4. 然后它处理来自服务器的响应,这(如果服务器由于安全规则拒绝操作)可能会导致触发更多本地事件,以便应用程序可以将 UI 恢复到正确的状态。

  5. 它然后最后调用任何完成的听众,并解决或拒绝的承诺set()push()update(),或remove()方法。

您会注意到,在任何时候都不会因缺少 Internet 连接而引发任何错误。

如果您不想在应用没有互联网连接时向本地队列发送任何数据,最好检测 Firebase 客户端是否已连接到服务器。您可以通过侦听.info/connected伪节点来做到这一点。顺便说一句,这不仅涵盖了互联网连接,还涵盖了互联网连接有效但客户端无法访问 Firebase 的情况。此处的最佳实践是针对此状态使用“全局”侦听器,并在客户端未连接时禁用相关 UI 元素。


查看完整回答
反对 回复 2021-10-14
?
函数式编程

TA贡献1807条经验 获得超9个赞

此函数基于 Promise,因此您可以使用 try/catch:


try {

  firebase.push(data) // or set

} catch (error) {

  console.log(error) // here is error

}


查看完整回答
反对 回复 2021-10-14
  • 2 回答
  • 0 关注
  • 257 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信