Пожарная служба получает коллекцию медленно - PullRequest
0 голосов
/ 14 марта 2020

У меня есть коллекции и их подколлекции. Я л oop над ними и собираю данные. Работает нормально, но слишком медленно. Кто-нибудь может предложить улучшить проблему производительности?

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

enter image description here

1 Ответ

0 голосов
/ 27 марта 2020

У меня та же проблема. Приложение запускает Promise.all (this.firestore.collection (path) .get ()) с очень маленькой базой данных.

Запрашивает / orders / {id} / parts на 10 заказов, каждый вздымающийся 2 ..5 частей занимает 8 сек c. База данных насчитывает 100 заказов.

H.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...