0

我有收藏和他们的子收藏。我遍历它们并收集数据。它工作正常,但速度太慢。任何人都可以建议改善性能问题吗?

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;
}

在此处输入图像描述

4

0 回答 0