我有收藏和他们的子收藏。我遍历它们并收集数据。它工作正常,但速度太慢。任何人都可以建议改善性能问题吗?
static async getSubCategories(category_id) {
const db = Firebase.firestore(),
subCategories = [];
activeRef = await db.collection("sub_categories").where("category_id", "==", category_id).orderBy("id").get();
for (let doc of activeRef.docs) {
const subCategory = doc.data();
if (_.isObject(subCategory)) {
const subRef = await doc.ref.collection('sub_sub_categories').orderBy("id").get(),
subSubCategories = [];
for (let subDoc of subRef.docs) {
const subSubCategory = subDoc.data();
if (_.isObject(subCategory)) {
subSubCategories.push(subSubCategory);
// If SubCategory has image, download storage uri
if (subSubCategory.image_storage_uri) {
const imageRef = Firebase.storage().refFromURL(subSubCategory.image_storage_uri),
imageUri = await imageRef.getDownloadURL();
subSubCategory.image_uri = imageUri;
}
}
}
if (subSubCategories.length > 0)
subCategory.sub_sub_categories = subSubCategories;
subCategories.push(subCategory);
}
}
return subCategories;
}
