Облачная функция Firebase - Обещания. Есть ли ограничение на количество «обещаний», которые можно добавить в Promise.all ()? - PullRequest
4 голосов
/ 22 октября 2019

Таким образом, Promise.all () действительно упрощает жизнь.

Но есть ли ограничения на количество обещаний, которые можно добавить к Promise.all () '

т.е. есть ли ограничение на размер массива 'обещаний' в следующем коде: -

const promises = [];

    snapshot.forEach(doc => {

        **some code**

        promises.push(
            docRef.set(newData, {merge: true})
        );

    });

    return Promise.all(promises);

----------------------------------------------------------------------

Дальнейшее уточнение:

Я использую эту облачную функцию для обновления всех пользователей моего приложения.

Структура БД модели: Users/userId

Поскольку число пользователей невелико, на данный момент у меня нет проблем.

Но, по мере роста числа пользователей Я обеспокоен, могу ли я достичь определенных пределов ..

И в соответствии с проблемами, указанными:

1) Дэвид - максимальное количество одновременных веб-запросов браузера замедляет работу

2) herohtar - ограниченная память, доступная для вашей функции

Этидве проблемы предполагают, что также могут быть некоторые ограничения.

Итак, кто-нибудь может указать официальный документ для того же или любого из команды Firebase, если вы, ребята, можете пролить свет на то же самое.

1 Ответ

1 голос
/ 22 октября 2019

Если эта функция должна масштабироваться до огромного количества пользователей, вы почти наверняка столкнетесь с проблемами, превышающими пределы памяти и времени в вашей функции, прежде чем вы превысите какие-либо ограничения на количество обещаний. Я настоятельно рекомендую тщательно обдумать, действительно ли вы хотите загружать и выполнять N задач в функции, где N может быть очень большим. Это не то, для чего были созданы облачные функции.

Если вам действительно нужно выполнять N задач масштабируемым образом, и вы должны использовать облачные функции, рассмотрите возможность разделения работы на управляемые, предсказуемые размеры,и разделите работу на несколько вызовов функций.

...