2016-03-11 6 views
5

मेरे आंकड़ा संरचना (userdetails)एंड्रॉइड में सभी नोड डेटा लोड किए बिना नोड के बच्चों की संख्या प्राप्त करने का कोई तरीका है?

-KCV32vWQECRlMvlgkGO 
    Name: "asdf" 
    Phoneid: "1zlkflakfhkf0e8" 
    Phoneno: "9478567899" 
-KCV3s-lwv5i-VvFBaxq 
    Name: "asas" 
    Phoneid: "1c584jbascjasc8" 
    Phoneno: "9999999999" 

मेरे विधि

queryRef.addChildEventListener(new ChildEventListener() { 

    public void onCancelled(FirebaseError arg0) { 
     // TODO Auto-generated method stub 
    } 

    public void onChildAdded(DataSnapshot arg0, String arg1) { 
     // TODO Auto-generated method stub 
     System.out.println("Size "+arg0.getChildrenCount()); 
    } 

कैसे 2 की गिनती प्राप्त करने के लिए? मुझे 3 बार दो बार मिल रहा है क्योंकि प्रत्येक बार जब यह अंदर जाता है और बच्चे को अलग से मिलता है।

उत्तर

4

समस्या यह है कि child_added ईवेंट स्नैपशॉट आपको नया बच्चा डेटा देता है। तो getChildrenCount() बताता है कि गुण (बच्चों) के नए बच्चे के पास है (और इसमें 3 है)।

आप क्या तुम इतनी तरह एक ValueEventListener घटना जोड़ना चाहिए चाहते करने के लिए:

queryRef.addValueEventListener(new ValueEventListener() { 
    public void onCancelled(FirebaseError arg0) { 
    } 

    public void onDataChanged(DataSnapshot arg0, String arg1) { 
     System.out.println("Size "+arg0.getChildrenCount()); 
    } 
}); 

यह queryRef स्थान हर बार मूल्य में परिवर्तन (उदाहरण, नए बच्चे) में सभी बच्चों को वापस आ जाएगी।

मुझे बताएं कि यह काम करता है क्योंकि मैं इसे स्वयं नहीं कर सकता।

संबंधित मुद्दे

 संबंधित मुद्दे