2017-05-13 149 views
0

I want to retrieve all that data whose blood group have B+ value 檢索特定值數據

mFirebaseInstance = FirebaseDatabase.getInstance(); 
mFirebaseRef = mFirebaseInstance.getReferenceFromUrl("https://c7d86.firebaseio.com"); 


mFirebaseRef.child("bloodgroup").equalTo("B+").addChildEventListener(new ChildEventListener() { 
     @Override 
     public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
      getUpdate(dataSnapshot); 
     } 

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

     @Override 
     public void onChildRemoved(DataSnapshot dataSnapshot) { 
     } 

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

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 


    }); 

所以,請幫助我,因爲我是火力新的學習和必須知道如何寫這個查詢。

+0

什麼不行?你有錯誤嗎? – Mibac

+0

m獲取我輸入的所有數據。我只想要「B +」血型數據 –

+0

它顯示我所有的數據,但我只想要其數據庫中有bloodgrp「B +」 –

回答

0

Firebase數據庫查詢會評估您執行查詢的節點下的子項。所以在你的情況下,當你使用mFirebaseRef.child("bloodgroup")它會尋找一個/bloodgroup然後查詢下的孩子。由於沒有/bloodgroup,所以沒有結果。

正確的代碼:

mFirebaseRef = mFirebaseInstance.getReference(); 
DatabaseReference queryLocation = mFirebaseRef.child("the key under bloodfinder-c7d86 in the screenshot"); 
Query query = queryLocation.orderByChild("bloodgroup").equalTo("B+"); 

query.addChildEventListener(new ChildEventListener() { 
     @Override 

注意,我不得不做一些猜測,因爲你分享的JSON的圖片。對於將來的問題,請以文本形式分享JSON。您可以通過點擊Firebase Database console中的「導出JSON」鏈接來獲取此信息。

+0

它不能正常顯示數據庫中的所有記錄 –

+0

這似乎不太可能。你可以編輯你的問題,分享更新的最低代碼重現問題? –