как FirebaseRecyclerAdapter получать данные из базы данных в режиме реального времени?что это, используя addValueEventListener или addListenerForSingleValueEvent ...? - PullRequest
0 голосов
/ 02 марта 2019

Я использую FirebaseRecyclerAdapter для получения данных из базы данных firebase, но в разных макетах я использую addValueEventListener и addListenerForSingleValueEvent, и я знаю, что addValueEventListener следует удалить после выхода из макета (в onDestroy ()).поэтому мой вопрос заключается в том, как остановить прослушиватель из FirebaseRecyclerAdapter после того, как я оставлю макет, в котором находится FirebaseRecyclerAdapter .. ??

1 Ответ

0 голосов
/ 02 марта 2019

Если вы используете адаптер из Firebase-UI, вы можете остановить его от прослушивания изменений, вызвав adapter.stopListening(), обычно в методе onStop вашей деятельности.

Если вы присоединяете свой собственныйслушатели с addValueEventListener или addChildEventListener, вам действительно нужно удалить их, когда они больше не нужны.Для этого вам нужно отслеживать добавленных слушателей, а затем вызывать removeEventListener по запросу или ссылке ..

Так что если вы добавили слушателя с помощью:

ValueEventListener listener = new ValueEventListener() {
   ...
});
ref.addValueEventListener(listener);

Затем вы можете удалить его (например, в onStop) с помощью:

remove.removeEventListener(listener);

Обратите внимание, что слушатели, добавленные с addListenerForSingleValueEvent, автоматически удаляют себя после того, как получают первое значение избазы данных, поэтому вам обычно не нужно удалять их в своем коде.

...