Firebase云函数递归承诺调用

时间:2018-07-20 18:59:41

标签: firebase google-cloud-functions firebase-admin

我有一种情况,我必须递归调用我的云函数,直到到达最后一个子节点为止。我能够达到终点,但是我的云功能永远不会完成,它会在1分钟后完成所有任务和超时。

这是我的示例代码-

updateDataOnFirebase = function(startKey) {
query.once('value',
                function (snapshot) {
                  var lastKey = ''
                  if (snapshot.exists() && snapshot.hasChildren()) {
                    snapshot.forEach(function(childSnapshot) {
                      if (startKey !== childSnapshot.key) {
                        lastKey = childSnapshot.key
                      }
                      //do some stuff
                    })
                  }
                  resolve(lastKey)
          })
    }).then(function(value) {
      if (value) {
        return new Promise((resolve, reject) => {
          return updateDataOnFirebase(value)
        })
      }
      else{
        throw new Error("error message");
        //return null
      }
    }).catch(error => {
              console.log('error', error);
    })
    return promise;
}

0 个答案:

没有答案