Как остановить прослушиватель снимка, который был внутри адаптера RecyclerView? - PullRequest
0 голосов
/ 06 октября 2019

У меня просто есть определенная проблема со слушателем снимка Firestore. Я новичок в его использовании, и я прочитал, что вы должны останавливать прослушиватель снимков каждый раз, когда вы переходите к другой деятельности. Я пытался:

db.collection("Mydata").document(userID).addSnapshotListener(itemView.getContext(), new EventListener<DocumentSnapshot>() {
                    @Override
                    public void onEvent(@Nullable DocumentSnapshot documentSnapshot, @Nullable FirebaseFirestoreException e) {

                    }
                })

Но есть ошибка из-за itemView.getContext().

Мои вопросы:

  • Это нормально, если я неt включить Activity и оставить вот такой вот список прослушивателей снимков?
  • Если нет, есть ли способ решить эту проблему?

1 Ответ

1 голос
/ 06 октября 2019

Разве это нормально, если я не включаю Activity в и не оставляю этот список мгновенных снимков?

Нет, это не так! Когда вы звоните addSnapshotListener для прослушивания обновлений в реальном времени , это означает, что вы подключаете прослушиватель, который вызывается для каждого изменения, которое происходит в вашей базе данных. Так что это происходит также, когда ваше приложение закрыто, поэтому обязательно отсоедините слушателей до того, как действие будет уничтожено.

Если нет, есть ли способ решить эту проблему?

Да, есть. Пожалуйста, смотрите мой ответ из следующего поста:

Если вВ вашем приложении вам не нужно получать данные в реальном времени, тогда вы можете просто использовать вызов get () непосредственно для ссылки, которая просто читает документ только один раз. Поскольку он читает только один раз, прослушиватель не удаляется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...