Я хочу удалить слушателя addValueEventListener из refb firebase, когда значение определенного поля истинно.removeEventListener не удаляет прослушиватель в firebase
ValueEventListener valueListener=null;
private void removeListener(Firebase fb){
if(valueListener!=null){
**fb.removeEventListener(valueListener);**
}
}
String key="https://boiling-heat-3083.firebaseio.com/baseNodeAttempt/" + userId+"/"+nodeType+"/"+nodeId+"/data";
final Firebase fb = new Firebase(key);
valueListener=fb.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snap) {
final HashMap<String, Object> data=(HashMap<String, Object>) snap.getValue();
if(data.get("attemptFinish_"+nodeId)!=null){
boolean title = (boolean) snap.child("attemptFinish_"+nodeId).getValue();
if(title){
removeListener(fb);
}
}
}
@Override
public void onCancelled() {
// TODO Auto-generated method stub
}
});
Но addValueEventListener не получает удалены, и это называется для этого firebase исх. Поэтому, пожалуйста, предложите мне, как удалить слушателя из любого refb firebase, если потребуется.
Ваш 'valueListener' всегда' null' – talex
Вы можете удалить слушателя внутри обратного вызова с 'если (название) {fb.removeEventListener (это); } '. Несвязанный: большинство читателей этого кода предполагают, что 'title' является строкой. Возможно, вы захотите использовать имя переменной, которое является более интуитивным, чтобы интерпретировать как логическое, например. 'IsFinished'. –
valueListener имеет ссылку при добавлении слушателя @talex – Keshav