Пожарная ошибка: TOO_MANY_TRIGGERS - PullRequest
0 голосов
/ 02 июня 2018

В нашем приложении Firebase есть список с большим количеством элементов в базе данных реального времени.Каждая операция создания, обновления и удаления отдельного элемента обрабатывается облачной функцией Firebase с помощью триггера onWrite (в простейшем случае эта функция просто считает элементы).Но иногда возникает необходимость в массовых операциях с предметами без необходимости индивидуальной обработки.Допустим, мы хотим в одной транзакции удалить все элементы и сбросить счетчики.

Ранее это работало просто отлично.Из-за ограничения в 1000 для числа облачных функций, запускаемых одной записью (https://firebase.google.com/docs/database/usage/limits), функции вообще не запускались, и это был желаемый результат.

Теперь, без каких-либо изменений в коде приложения, мыесть ошибка

Ошибка: TOO_MANY_TRIGGERS: этот запрос может вызвать срабатывание слишком большого количества функций.

Такая же ошибка появляется в клиентском приложении, API администратора и даже при импорте jsonиспользование веб-интерфейса. Единственный вариант, который работает для нас, - это обработка элементов в пакетном режиме. Но это не транзакционный процесс, и он занимает до десятков минут, а не миллисекунд, как раньше.

Какие варианты у нас есть, чтобы обойти этоошибка? Оптимально это было бы переключение на пропуск функции запуска в случае превышения лимита.

1 Ответ

0 голосов
/ 02 июня 2018

В настоящее время нет способа предотвратить запуск триггеров в особых обстоятельствах.Единственный способ обойти это - отменить все триггеры, выполнить обновления, а затем снова развернуть все триггеры.

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

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