Как повторно вызвать событие ValueEventListener onDataChange при изменении пути моментального снимка - PullRequest
0 голосов
/ 01 июля 2019

В приведенном ниже коде вы можете видеть, что внутри дочернего снимка есть переменная var.Эта переменная установлена ​​на моем методе onCreate, поэтому в классическом случае все работает нормально.Теперь в моем коде есть еще один раздел, в котором EventBus изменяет эту переменную.Я проверил, что вар действительно меняется.Проблема в том, что, так как в моей базе данных ничего не изменится, в этом поле не будет обновлений, поэтому я попаду по неверному пути.Есть ли способ, которым я могу перезапустить событие, когда эта переменная изменится?Из того, что я знаю, переменная listener не существует.Это нужно запустить 1) когда переменная была установлена ​​впервые и продолжить запуск, если данные изменяются и переменная остается той же.2) когда переменная изменится и будет продолжать, если дата снова изменится.

mUserRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.child("var").exists()) {
                    if (!(dataSnapshot.child("var").getValue(String.class).isEmpty())) {
                        varI = Integer.valueOf(dataSnapshot.child("var").getValue(String.class));
                    }
                }
                else {
                    varI = 0;
                }   
            }

Я попытался написать что-то случайное в firebase в новом поле после изменения моей переменной, но это не сработало.

Еще одна мысль, которая у меня возникла, заключалась в том, что, поскольку весь мой фрагмент основан на этом конкретном var, возможно, я мог бы каким-то образом обновить фрагмент (пересоздать?) Новым var в качестве дополнительного комплекта.

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