Я хотел бы знать, существует ли какой-либо обратный вызов или что-то, что может вызвать метод, когда изменяется дочерний элемент в Firebase database
узле.

Например, этот узел «Пользователи», каждый пользователь сохраняет свой собственный UID
и все свои данные.Я ищу метод, который будет срабатывать при изменении profilePic
.
Я пробовал addChildEventListener
, а также addValueEventListener
, но ни один из них не работал.
Вот пример
refToUsers.getReference(Params.USERS).child(currentUser.getUid()).child(Params.PROFILEPIC).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Glide.with(getApplication()).load(s).apply(new RequestOptions()
.placeholder(R.mipmap.ic_launcher))
.into(cvNavUserProfile);
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Другой метод
refToUsers.getReference(Params.USERS).child(currentUser.getUid()).child(Params.PROFILEPIC).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d(TAG,"DataSnapshot: " + dataSnapshot.toString());
String profilePic = null;
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Ни один из этих методов не запускается при изменении profilePic
.Есть ли способ решить это?например, обратный вызов или прослушиватель, которые будут срабатывать каждый раз, когда profilePic
равен update/change
?
Также метод может работать только тогда, когда пользователь находится в определенном действии?Может ли оно быть запущено, даже если пользователь не активен в методе?