繁体   English   中英

用于Firebase错误处理的云功能

[英]Cloud Functions for Firebase error handling

我想知道当我链接promises时编写node.js代码的正确方法是什么,如果出现问题我需要更新实时数据库?

这是代码:

export const testErrorHandling = functions.database
      .ref('/workqueue/{pushId}/something').onWrite(event => {

  // Exit when the data is deleted.
  if (!event.data.exists()) {
    return;
  }

  //This is the retry count, give up if more than 5 times have been retried.
  const data = event.data.val()
  if (data.count >= 5) {
    return
  }

  return event.data.ref.root.child(data.fulluri).once('value').then(snapshot => {
    //Process all, if ok, delete the work queue entry
    return event.data.ref.remove()  
  }).catch(exception => {
    console.log('Error!: ' + exception)

    //Log error, increase retry count by one an write to that 
    //location to trigger a retry

    //Is the line below OK?
    //return event.data.ref.child('count').set(data.count + 1)
  })

})

我想在许多情况下这是常见的要求,但找不到一个例子,因为所有的例子似乎只是写入console.error并完成。 (现实世界中很少见。)

[Firebase云功能开发人员]你的想法非常聪明。 它会工作很多次但不会捕获较低级别的问题,例如数据库不可用或应用程序超时(尽管可以通过重新排列的Promise.race来修复)。

我们正在努力为核心产品添加重试。 既然你提出了这个问题,我很乐意征求一些客户的意见。 作为开发人员,您在重试策略中需要/期望哪些功能? 您觉得什么是理智的默认值,您希望如何覆盖这些默认值?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM