В нашем приложении Firebase есть список с большим количеством элементов в базе данных Realtime. Каждая операция создания, обновления и удаления на одном элементе обрабатывается Firebase Cloud Function с помощью триггера onWrite (в простейшем случае эта функция просто подсчитывает элементы). Но иногда требуется массовая работа на элементах без необходимости индивидуальной обработки. Скажем, мы хотим, чтобы в одной транзакции удалялись все элементы и сбрасывались счетчики.
Раньше это работало нормально. Из-за предела 1000 для количества Облачных Функций, вызванных одной записью (https://firebase.google.com/docs/database/usage/limits), никаких функций, которые вообще не срабатывали, и это был желаемый результат.
Теперь, без изменения кода приложения, мы имеем ошибку
Ошибка: TOO_MANY_TRIGGERS: этот запрос вызовет слишком много функций для запуска.
Такая же ошибка появляется в клиентском приложении, API-интерфейсе администратора и даже при импорте json с использованием веб-интерфейса. Только тот вариант, который работает для нас, - это обработка элементов партиями. Но он не транзактивен и занимает до десятков минут вместо миллисекунд, как и раньше.
Какие параметры мы должны обойти эту ошибку? Оптимально это было бы некоторым переключением на запуск функции пропуска в случае превышения лимита.