【问题标题】:Check if push is successful - angularfire2检查推送是否成功 - angularfire2
【发布时间】:2017-05-07 19:11:49
【问题描述】:

目前我开发了一个 Ionic2 应用程序,它与 Firebase 数据库通信。在更新节点时,有时它会起作用,有时则不起作用。 所以我厌倦了用以下代码处理错误:

this.db.list("/Events/" + this.eventID+ "/teilnehmer").push(this.userID)
        .then(resolve => {
          console.log('success');
        }, reject => {
          console.log('error');
        })
        .catch(reject => {
          console.log('catch');
        });

但即使我断开互联网连接,也不会引发错误。 如果推送不成功,你们中有人知道我该如何处理错误吗?

【问题讨论】:

    标签: error-handling ionic2 angularfire2


    【解决方案1】:

    我有同样的情况,推送有时不返回承诺,所以我在 github FirebaseListObservable push() takes too long to add 上提出了问题,但不幸的是它没有解决,我通过电子邮件联系了 Firebase 支持,支持团队审查了我的问题并检查了我的代码已发送,并回复说代码中没有什么可做的,并建议我清除手机的存储缓存,我也这样做了,问题得到了解决,

    这是来自 firebase 支持的邮件

    你好 xxxx,

    我建议您在继续之前尝试清除手机的缓存 再次,它的内存可能太高了。为此,请转到:设置 -> 存储 -> 缓存数据。选择它然后选择确定(用于清除 缓存)。另请检查 Github 上提出的相同问题 并由我们的一位工程师回答。

    如果在尝试建议的建议后问题仍然存在,请 给我一个最小且可运行的代码,我们可以用来 模拟这个,可能是 plunkr 或 jsfiddle 代码,或者来自 可以证明问题的临时代码。

    问候,xxxx

    【讨论】:

      【解决方案2】:

      如果您想处理这个问题,您可以考虑设置一个超时,因为如果 Firebase 没有返回任何内容并解决,Promise 只会停留在“待处理”状态,reject / catch 将永远不会被触发。

      您可以使用 Promise.race() 来执行此操作:Example Promise timeout with Promise.race() 也可以查看此线程:More Examples

      【讨论】:

        猜你喜欢
        • 2021-07-28
        • 2012-11-30
        • 1970-01-01
        • 1970-01-01
        • 2012-10-25
        • 2011-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多