Можно ли использовать экземпляр ValueEventListener для двух разных вызовов с addValueEventListener, в той же деятельности? - PullRequest
0 голосов
/ 12 марта 2019

Я использую метод addValueEventListener, как показано ниже:

public List<MyClassModel> DoRequestCards() {

        valueEventListener = getDatabaseReference()
                .child("Example")
                .child(Objects.requireNonNull(getFirebaseAuthInstance().getCurrentUser()).getUid())
                .addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                        list.clear();
                        for (DataSnapshot data : dataSnapshot.getChildren()) {
                            MyClassModel model = data.getValue(MyClassModel.class);
                            //Retrieves UniqueKey from each example
                            Objects.requireNonNull(card).setUniqueId(data.getKey());
                            list.add(model);
                        }
                        taskListener.OnSuccess(); //call interface method
                    }

                    @Override
                    public void onCancelled(@NonNull DatabaseError databaseError) {
                        taskListener.OnError(databaseError.getMessage()); //call interface method
                    }
                });

        return list;
    }

Можно создать другой метод для извлечения другого списка с другой выборкой данных addValueEventListener в том же экземпляре valueEventListener? Или я должен создать для него еще один экземпляр (потому что они находятся на одной и той же активности и нуждаются в том, чтобы каждый продолжал слушать свои изменения)?

Я использую один и тот же экземпляр ValueEventListener для разных действий, но когда действие прекращается (onStop), я удаляю его (у меня нет проблем с этим).

1 Ответ

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

Вы можете использовать один и тот же слушатель дважды.Это не проблема.Вы можете проверить моментальный снимок в слушателе, какое местоположение вызвало слушателя.

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