मेरे पास किसी स्थान पर दिए गए उपयोगकर्ता के लिए चैट रूम की एक सूची है, और किसी अन्य स्थान पर दिए गए चैट रूम के लिए संदेशों की कुल संख्या है। मैं चैट रूम उपयोगकर्ता से संबंधित कई संदेशों का ट्रैक रखना चाहता हूं।एंड्रॉइड पर फायरबेस में श्रोताओं का ट्रैक कैसे रखें?
मैं एक निम्नलिखित स्निपेट:
//getting all chat rooms this user belongs to
mFirebase.child("myChatRooms").child("testUser").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded (DataSnapshot dataSnapshot, String previousKey){
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
ChatRoom myRoom = postSnapshot.getValue(ChatRoom.class);
//listening to message count in every chat room user belongs to
mFirebase.child("chatRoomMessageCount").child(postSnapshot.getKey()).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//number of messages have changed
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
}
//......
}
सवाल है, मैं कैसे को दूर उन सभी ValueEventListener के बाद, जब onChildRemoved बुलाया जाएगा, या मैं उन्हें अब और ज़रूरत नहीं होगी करते हैं?
इस स्थिति से निपटने में अनुशंसित दृष्टिकोण क्या है? क्या मुझे हैश मैप में बाल कुंजी और श्रोता स्टोर करना चाहिए और उन्हें स्वयं का ट्रैक रखना चाहिए या किसी दिए गए फायरबेस स्थान के लिए सभी श्रोताओं को हटाने का कोई तरीका है?
यह मूल रूप से मेरे मन में था। मैं वास्तव में उम्मीद कर रहा था कि ऐसा करने का एक और शानदार तरीका होगा, या इसी तरह की कार्यक्षमता पहले से ही बनाई गई है। उदाहरण के लिए हम addValueEventListener के लिए TAG को दूसरे पैरामीटर के रूप में पास कर सकते हैं, और उसके बाद निकालें ValueEventListenersWithTag जैसे कुछ कॉल करें। लेकिन, मुझे लगता है कि वास्तविक समय और फायरबेस की निरंतर प्रकृति को देखते हुए आपने लोगों को डेवलपर्स को छोड़ने का फैसला किया, जो ठीक है, लेकिन आपको इसे दस्तावेज़ों में प्रतिबिंबित करना होगा। फ्लैट डेटा अक्सर नेस्टेड श्रोताओं की ओर जाता है, और यह अवधारणा के लिए नए लोगों के लिए भ्रमित हो सकता है। – Sver
मैं सहमत हूं। मैं एक और अधिक सुरुचिपूर्ण समाधान में और अधिक शोध करूँगा। मेरे लिए आपका फ़ीडबैक वाकई सराहनीय है! –
क्या यह आपके लिए स्वीकृत उत्तर की आवश्यकताओं को पूरा करता है? या क्या कोई अन्य विचार हैं? –