2016-08-14 3 views
1

firebase의 데이터가 아래 그림과 같습니다.Firebase equalTo가 작동하지 않습니다.

items { 
    item1: { 
     field1: value1 
     field2: value2 
    } 
    item2: { 
     field1: value4 
     field2: value3 
    } 
} 

지금, field2 === value3 인 모든 항목을 가져오고 싶습니다. 다음 쿼리를 실행하면 모든 항목을 가져옵니다. 왜?

firebase.database().ref().child('items') 
     .orderByChild('field2') 
     .equalTo('value3') 
     .limitToLast(10) 
     .once('value'); 
+1

Firebase 버전 3 API 또는 이전 버전 2 API를 사용하고 있습니까? 코드가 제대로 보이지 않습니다. 심판은 어디 있습니까? 버전 3 API를 사용하면'firebase.database() .ref(). child (...')와 같은 형태가 될 것입니다. – cartant

+0

최신 버전을 사용하고 있습니다. 코드에서 firebase는 firebase에 맞는 지역 변수입니다. .database(). ref(). 더 명확하게하기 위해 질문 코드를 변경하겠습니다. – user43286

+0

당신은 당신이 '모든 항목'을 얻는다 고 말합니다. 얼마나 많은 사람들이 당신의 질문에 포함 시켰습니까? – cartant

답변

0

대신 쿼리를 사용하여, 당신은 항목의 모든 하위 항목을 반환합니다 child_added 수신기를 사용할 수 있습니다 그리고 당신은 당신이 원하는 작업을 수행 할 수 있습니다.

firebase.database().ref('items').on('child_added', snap => { 
    if(snap.val().field2 == 'value3') { 
     console.log('Match found in ' + snap.key); //Match found in item2 
    } 
}); 
관련 문제