我在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}`);
});
});
这里可能出现什么问题?
答案 0 :(得分:0)
我怀疑你需要在catch中返回一个错误以避免警告:
.catch((err) => {
console.log(`Failed with error info: ${err}`);
return err;
});
如果docDefinition
为undefined
,也可能会发生这种情况。检查这个并在这种情况下抛出错误可能是个好主意。