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