में श्रोता को हटा नहीं रहा है, जब मैं विशेष फ़ील्ड का मान सत्य होता हूं तो मैं firebase ref से addValueEventListener श्रोता को हटाना चाहता हूं।removeEventListener फायरबेस
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 रेफरी के लिए कहा जाता है। तो कृपया मुझे सलाह दें कि यदि आवश्यक हो तो किसी भी फायरबेस रीफ से श्रोता को कैसे हटाया जाए।
आपका 'valueListener' हमेशा होता है' null' – talex
आप श्रोता कॉलबैक के भीतर से 'के साथ करता है, तो (शीर्षक) {fb.removeEventListener (यह) हटा सकते हैं; } '। असंबंधित: इस कोड के अधिकांश पाठक मान लेंगे कि 'शीर्षक' एक स्ट्रिंग है। आप एक वेरिएबल नाम का उपयोग करना चाह सकते हैं जो बूलियन के रूप में व्याख्या करने के लिए थोड़ा अधिक सहज है, उदा। 'IsFinished'। –
वैल्यू लिस्टनर का संदर्भ है जब श्रोता जोड़ा जाता है @talex – Keshav