firebase.database set不会捕获网络故障时的错误

时间:2018-01-23 18:13:12

标签: javascript firebase asynchronous firebase-realtime-database network-programming

问题:
我有一个非常简单的firebase问题。我的.catch函数永远不会被触发。

背景
如果网络已连接,我可以成功保存到firebase并调用我的.then功能。但是,如果我从互联网断开连接,则永远不会调用.catch。我在chrome dev工具中看到了网络故障。他们只是尝试连接,但从不这样做(互联网断开连接)。

firebase.database()
    .ref('password')
    .set("hat")
    .then(() => {
      debugger;
    })
    .catch((error) => {
      debugger;
    })

1 个答案:

答案 0 :(得分:2)

<强>答案:
丢失的网络连接不是Firebase的失败状态。

<强>背景
根据他们的Offline-Capabilities docs

  

即使您的应用暂时失去网络连接,Firebase应用也会正常运行。

我能够验证我的.catch语句是否与其他类型的失败有关,例如错误的权限。

解决方法:
我目前的计划是手动实现超时,如果网络请求挂起太长时间将触发超时。