2017-04-25 42 views
1

這裏是我的火力地堡數據Android的火力點 - 讓兒童數

{ 
"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安卓計數的兒童和存儲在一個變量](http://stackoverflow.com/questions/41163512/firebase-android-count-children-and-store-it-in-一個變量?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然後如何讓孩子在上面的情況? –