У меня есть идентификаторы документов в коллекции, скажем idsCollection
. У меня есть другая коллекция, где на самом деле хранятся документы, скажем path-to-documents/docId
. Я хочу, чтобы массив сказал results
, чтобы вернуть все документы. Я пытаюсь добиться этого следующим образом:
function getAllDocuments(database: any) {
return new Promise((resolve, reject) => {
const idsCollection = "path/idsCollection"
const docPath = "path-to-documents/documents"
const dataSource = database
const dataRef = dataSource.collection(idsCollection);
const results = {};
dataRef.get()
.then(snapshot => {
snapshot.forEach(doc => {
let id = doc.data().docId
console.log("docId: " + id)
dataSource.doc(docPath+id).get()
.then(d => {
results[d.id] = d.data()
})
})
//return results[documentId]: {document}
if (Object.keys(results).length > 0) {
resolve(results);
} else {
resolve('No such document');
}
}).catch(err => {
reject(false);
console.log('Error getting documents', err);
});
})
}
Отказ от ответственности: я новичок в NodeJs и Promise
.