В приведенном ниже коде вы можете видеть, что внутри дочернего снимка есть переменная 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 в качестве дополнительного комплекта.