Firebase功能预期承诺或价值

时间:2017-11-17 18:04:51

标签: javascript firebase firebase-realtime-database promise google-cloud-functions

我在Firebase上编写了一个使用实时数据库触发器的云功能。它会触发onWrite,然后我需要使用Promises执行一系列命令。

当我使用一个promise时代码执行,当我链接promises时变得不可靠。但是,我总是在日志中得到这个:

Function returned undefined, expected Promise or value

我在任何需要的地方返回值,但我最终得到了这条消息。我的代码如下:

exports.sendQuotationToCustomer = functions.database.ref('/company/{companyId}/quotations/{quotationId}').onWrite((event) => {
  const companyId = event.params.companyId;
  console.log('Direct Generate');
  const root = event.data.ref.root;
  return root.child(`company/${companyId}/profile`).once('value')
  .then((profileSnap) => {
    console.log('1/Step');
    const profile = profileSnap.val();
    const docDefinition = helpers.createDocumentDefinition(profile, quotationData);
    return docDefinition;
  })
  .then((result) => {
    console.log('2/Step');
    // Perform some manipulation over result. But meanwhile:
    return result;
  })
  .catch((err) => {
    console.log(`Failed with error info: ${err}`);
  });
});

这里可能出现什么问题?

1 个答案:

答案 0 :(得分:0)

我怀疑你需要在catch中返回一个错误以避免警告:

.catch((err) => {
  console.log(`Failed with error info: ${err}`);
  return err;
});

如果docDefinitionundefined,也可能会发生这种情况。检查这个并在这种情况下抛出错误可能是个好主意。