2017-05-02 3 views
0

데이터를 검색하는 데 문제가 있습니다. 코드에서 나는 DB에 데이터를 저장하고있어 아래 :firebase에서 데이터를 검색하는 방법

여기
final FirebaseDatabase database = FirebaseDatabase.getInstance(); 
private DatabaseReference databaseReference = database.getReference(FirebaseInstanceId.getInstance().getToken()); 

databaseReference.child("age").setValue(sbAge.getProgress()); 
    databaseReference.child("status").setValue(spStatus.getSelectedItem().toString()); 

if(rbFemaleMe.isChecked()) 
{ 
    databaseReference.child("sex").setValue("Female"); 
} 
else if(rbMaleMe.isChecked()) 
{ 
    databaseReference.child("sex").setValue("Male"); 
} 

내 데이터베이스는 다음과 같습니다 db

내가 나이 = 27 모든 사용자를 얻을 수 있습니까?

답변

0

을 도움이되기를 바랍니다. 다른 범위 쿼리의 경우와 마찬가지로 일치하는 각 자식 노드에 대해 실행됩니다. 예를 들어, 우리는 27의 나이에있는 모든 사용자 찾으려면 다음 쿼리를 사용할 수 있습니다 더 이동을 위해 나를 위해 잘 작동

databaseReference.orderByChild("age").equalTo(27).addChildEventListener(new ChildEventListener() { 
    @Override 
    public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) { 
     System.out.println(dataSnapshot.getKey()); 
    } 

    // ... 
}); 

그것이 도움이 될 것입니다 희망 ... 을 here

0

원하는 데이터를 가져 오기 위해 사용자 지정 모델을 사용해야 할 수도 있습니다.

databaseReference.orderByChild("age").equalTo(27).addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     result = dataSnapshot.getValue(); 

    } 

    @Override 
    public void onCancelled(FirebaseError firebaseError) { 

    } 
}); 

이 시도 이것은 equalTo() 방법은 우리가 정확히 일치하는 기준으로 필터링 할 수 있습니다

관련 문제