Je suis un peu confus sur la façon de refactoriser mon code pour lire et écrire sans les promesses imbriquées. Lors de l'écriture d'un objet, si cet objet a un drapeau, je veux mettre à jour son objet "related" avec le nouveau nombre. J'ai deux problèmes.Comment gérer une lecture et écrire des fonctions Cloud Firestore
1) Promesses imbriquées à partir de la lecture puis de l'écriture. 2) Que dois-je retourner
exports.updateRelationshipCounts = functions.firestore
.document('masterProduct/{nfCode}').onWrite((event) => {
//on writing of record:
var newProduct = event.data.data();
if (newProduct.isGlutenFreeYN === 'Y') {
console.log('Gluten Free');
//Update GF count in the Brand Object:
var db = admin.firestore();
var docRef = db.collection("masterBrand").doc(newProduct.brandNFCode);
var doc = docRef.get()
.then(doc => {
doc.glutenFreeCount = doc.glutenFreeCount + 1
docRef.set(newProduct.brand)
.then(function() {
console.log("Document successfully written!");
})
.catch(function (error) {
console.error("Error writing document: ", error);
});
})
.catch(err => {
console.log('Error getting document', err);
})
};
});
De plus, il me veut retourner quelque chose ... nul?
Qui veut que vous retourniez quelque chose? Le gestionnaire d'événements '.onWrite()'? Aucun des gestionnaires '.onWrite()' dans le document [doc ici] (https://firebase.google.com/docs/functions/firestore-events) n'affiche quoi que ce soit renvoyé. – jfriend00