Ich schreibe eine Cloud-Funktion auf Firebase, die einen Echtzeit-Datenbank-Trigger verwendet. Es feuert onWrite
und dann muss ich eine Reihe von Befehlen mit Promises
ausführen.Firebase-Funktion erwartet Versprechen oder Wert
Der Code wird ausgeführt, wenn ich ein Versprechen verwende und unzuverlässig wird, wenn ich eine Kette verspreche. Allerdings bekomme ich dies immer im Protokoll:
Function returned undefined, expected Promise or value
I-Werte zurückkehre, wo immer nötig und doch hatte ich am Ende dieser Nachricht auf. Mein Code ist unten angegeben:
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}`);
});
});
Was könnte hier schief gehen?
Was genau ist 'docDefinition'? –
Hallo @DougStevenson, docDefinition ist für die PDF-Generierung, die ich in Schritt 2 verwenden möchte, sobald dies funktioniert. Ich habe hier einen Beispielcode geschrieben: 'https: // pastebin.com/Ubf10xqK' –
Auch, was meinst du, wenn du sagst es wird" unzuverlässig "wenn du Kettenversprechungen hast? Machst du in Schritt 2 eine asynchrone Arbeit? –