Ich versuche, einen Firebase Cloud Firestore asynchron für jedes Element in einem Array abzufragen. Mein Verständnis der async.map-Funktion war, dass es eine Funktion für jedes Element in einem Array ausführen würde und seinen Rückruf nur auslösen würde, sobald alle Elemente verarbeitet worden sind. Der folgende Rückruf wird jedoch unmittelbar nach der ersten Abfrage ausgeführt und bevor Ergebnisse verfügbar sind. Was ist der beste Weg, dies zu tun?Javascript asynchrone Karte, die früh beendet
var db = admin.firestore();
var getData = function (item, doneCallback) {
db.collection('myCollection').doc(item).get()
.then(results => {
console.log("Callback here");
return doneCallback({
"name": results.data().name,
"id": results.data().id,
"phone": results.data().phone,
});
});
};
async.map(myArray, getData, function (err, results) {
console.log("Finished");
for (var i=0;i<results.length; i+=1){
console.log(results[i].name);
console.log(results[i].id);
console.log(results[i].phone);
}
});