2017-04-25 14 views
1

을 계산 얻을 것은 내가 아래의 코드를 사용하면안드로이드 중포 기지 - 어린이가 여기

{ 
"ques": { 
"Chemistry": {}, 
"Countries": {}, 
"Film": {}, 
"Geography": {}, 
"General Knowledge": {}, 
"Information Technology": {}, 
"Physics": {}, 
"Sports": {}, 
"Technology": { 
"-Ki0y2ojhgAkDKVFostV": {}, 
"-Ki0ySAkiILNo2WSM7EO": {}, 
"-Ki1-8R-5gfHJGl9bDYC": {}, 
"-Ki1-fP2HlW0ejzVOGnD": {}, 
"-Ki1-vihF3xgP81UPT5t": {}, 
"-Ki10DSBPWIK0SAv5v8V": {}, 
"-Ki11-pLXVWZlv0XbKpp": {}, 
"-Ki11al-z6_MDBdpLGh7": {}, 
"-Ki11pxZvjvIl68UhVRc": {}, 
"-Ki124jOsYpy9bWpc7Yo": {}, 
"-Ki12oDiad-7X6UBTtBv": {}, 
"-Ki133GHJeys-J0vtdI9": {}, 
"-Ki13Iq62Ly_tx4tcxKa": {}, 
"-Ki13e4pp1Xnq7tnYa4N": {}, 
"-Ki142gU6ZHRkE34r0u3": {}, 
"-Ki14GswYf_lEji5a2PX": {}, 
"-Ki14WZpH5w5jnB4mZF1": {}, 
"-Ki14tX__g6VdmHJHi-g": {}, 
"-Ki15JghcU73RtW5zacV": {}, 
"-Ki15c91cOoRoR7h5aTL": {} 
} 
} 
} 

내가에서 사용할 키의 수를 계산하려면 Technology = 7 계산됩니다 내 중포 기지 데이터이지만, 20 키가 이용 가능하다 Technology

Query countQuery = countRef.child("ques").child("Technology"); 
countQuery.addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 


       questionCount = (int) dataSnapshot.getChildrenCount(); 
       tQuestionNoShow.setText(""+questionCount); 

      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 

      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

그래서 .. 그것을 구현하는 방법 ??

+0

아마도 모든 데이터를 한 번 가져 오는 addListenerForSingleValueEvent() 수신기를 사용할 수 있습니다. 그런 다음 스냅 샷을 사용하여 getChildrenCount()로 자식을 계산할 수 있습니다. 너 해봤 니? – user2399432

+0

이 질문에 대한 답변은 이미 있습니다 : [Firebase android count children] 및 [변수에 저장] (http://stackoverflow.com/questions/41163512/firebase-android-count-children-and-store-it-in- a variable? rq = 1) –

답변

3
Firebase.setAndroidContext(this); 
    DatabaseReference fbDb = null; 
    if (fbDb == null) { 
     fbDb = FirebaseDatabase.getInstance().getReference(); 
    } 


    fbDb.child("ques/Technology") 
     .addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       // get total available quest 
       int size = dataSnapshot.getChildrenCount(); 
      } 
      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
+0

감사합니다. .. 다른 리스너를 이해합니다. –

+0

만약'ChildEventListener'를 사용한다면 위의 경우에 자식을 얻는 방법은 무엇입니까? –