Вообще говоря, мы используем транзакции для получения согласованных данных. Рекомендация, которую вы получите:
вы можете использовать пакетные записи
Это по той же самой причине. К сожалению, вы не можете смешивать их. Вы должны выбрать один или другой. Реалистично c говоря, и пакет, и транзакция используются для обновлений atomi c.
Транзакция похожа на пакетную, и, как указано в документах :
Все операции выполнены успешно или ни одна из них не применяется.
Основное различие между пакетной записью и транзакцией заключается в том, что пакет просто записывает, а транзакция читает и сразу после нее пишет.
Таким образом, решение в вашем случае заключается в использовании Firestore пакетно-пишет для выполнения 500 операций одновременно.