Я пытаюсь улучшить функцию get в Firestore, у меня есть что-то вроде:
return admin.firestore().collection("submissions").get().then(
async (x) => {
var toRet: any = [];
for (var i = 0; i < 10; i++) {
try {
var hasMedia = x.docs[i].data()['mediaRef'];
if (hasMedia != null) {
var docData = (await x.docs[i].data()) as MediaSubmission;
let submission: MediaSubmission = new MediaSubmission();
submission.author = x.docs[i].data()['author'];
submission.description = x.docs[i].data()['description'];
var mediaRef = await admin.firestore().doc(docData.mediaRef).get();
submission.media = mediaRef.data() as MediaData;
toRet.push(submission);
}
}
catch (e) {
console.log("ERROR GETTIGN MEDIA: " + e);
}
}
return res.status(200).send(toRet);
});
Первое получение в порядке, но производительность хуже на линии:
var mediaRef = await admin.firestore().doc(docData.mediaRef).get();
Я думаю, это потому, что вызов не пакетный.
Можно ли получить пакетное получение массива mediaRef для повышения производительности?
По сути, у меня есть коллекция документов, которыесохранить внешние ссылки в виде строки, указывающей на путь в отдельной коллекции, и получение этих ссылок оказалось медленным.