Есть способ избежать этого?
Конечно, есть. Что вы делаете, это добавляете слушателя в реальном времени, который срабатывает каждый раз, когда вы вносите изменения в ваше myCollection
местоположение. Не имеет значения, если это операция удаления, записи или даже обновления, метод onEvent()
срабатывает. Чтобы избежать этого, вы должны получать данные только один раз, используя метод Query get () . Это соответствующий addListenerForSingleValueEvent()
метод из базы данных Firebase Realtime.
Редактировать:
Согласно вашему комментарию:
Существует способ использовать слушатель и запускать onEvent только с операциями создания (или создания и обновления)?
Да, вы можете просматривать изменения между снимками с помощью оператора switch, как объяснено официальная документация, касающаяся изменений между снимками .
Часто полезно увидеть фактические изменения результатов запроса между снимками запросов, а не просто использовать весь снимок запроса. Например, вы можете захотеть сохранить кеш, так как отдельные документы добавляются, удаляются и изменяются.