Я пытаюсь обнаружить изменение значения в моей базе данных Firebase. Вот мой код для инициализации ValueEventListener:
valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
try {
String customerLocation = String.valueOf(dataSnapshot.getValue());
Point customerPoint = locationFounder.getPoint(customerLocation);
if (customerPoint != null) {
databaseReference.child("isActive").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
boolean isActive = Boolean.valueOf(String.valueOf(dataSnapshot.getValue()));
displayPopUp(isActive, customerPoint, customerLocation);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
} catch (Exception e) {
Log.d("Listener",e.toString());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
destinationReference.addValueEventListener(valueEventListener);
Проблема возникает, когда я хочу вызвать этого слушателя в моей деятельности. Я пытался с этим:
destinationListener.getValueEventListener().onDataChange(REQUIRED_SNAPSHOT);
Я не знаю, как я могу получить снимок datasnapshot, который требуется для onDataChange. Я хотел бы получить эту работу с ValueEventListener, а не ChildEventListener, если это возможно. Однако я не совсем уверен, что это правильный способ попытаться обнаружить изменение значения. Если есть какой-то другой способ, который будет работать должным образом, я хотел бы знать об этом.