ऑनव्राइट हैंडलर में, मैं एकाधिक पढ़ना चाहता हूं, कुछ डेटा कुशलतापूर्वक उपयोग करना चाहता हूं, और फिर इसे संग्रहीत करना चाहता हूं। मैं वादा अवधारणा के लिए बिल्कुल नया हूँ। क्या मैं निम्नलिखित वादा प्रबंधन से सुरक्षित हूं, फायरबेस के संबंध में मेरे प्रश्नों को पूरा करने से पहले नहीं?फायरबेस के लिए क्लाउड फ़ंक्शंस: धारावाहिक क्रमबद्ध
exports.test = functions.database.ref('/zzz/{uid}').onWrite(event => {
console.log('zzz', event.data.val());
return Promise.all([
admin.database().ref('/zzz/1').once('value'),
admin.database().ref('/zzz/2').once('value')
]).then(function(snaps) {
console.log('loaded', snaps[0].val());
var updKeys = {
["/xxx/" +event.params.uid +"/zoo"]: 'giraffe',
}
admin.database().ref().update(updKeys, function(error) {
console.log("Updating data finished. ", error || "Success.");
})
});
});
ऊपर काम करता है, लेकिन नहीं जानते कि इसके सही तरीके से ...
मुझे उत्सुकता है कि आप 'स्नैप [1] '... का उपयोग कभी नहीं करते हैं, तो आप'/zzz/2' का अनुरोध क्यों कर रहे हैं? –
यह सिर्फ एक परीक्षण है - पुनर्प्राप्त डेटा के वास्तविक (गलत) उपयोग को ध्यान में रखें (या बदसूरत तथ्य यह हार्डकोडेड यूड्स का उपयोग कर रहा है :) – jazzgil
यह भी ध्यान दें कि आप अपने 'ऑन्राइट' कॉलबैक से वापस आने वाले वादे को हल कर चुके हैं ** ** से पहले अंत में 'अपडेट' पूरा हो गया है। यदि यह जानबूझकर नहीं है, तो आपको एक वादा करना होगा, इसे 'फिर' से वापस कर देना होगा, और इसे 'अपडेट' कॉलबैक में हल करना होगा। –