Ваш прослушиватель документов при запуске записывает обратно в тот же документ, который его инициировал, поэтому он запускается снова с результатом этого изменения. Который начинает весь цикл заново.
Мне не ясно, что вы ожидаете вместо этого, но если вы просто хотите получить значение документа один раз, то обновите его, вы должны использовать get()
вместо onSnapshot()
, как показано в документации . Либо так, либо установите какое-либо состояние в вашем объекте, которое указывает вашему слушателю, когда он не должен обновлять документ снова.