2016-11-07 3 views
18

: firebase database중포 기지 검색 내 중포 기지 데이터베이스에서 다음과 같은 구조를 가지고

나는 이름, 성 또는 전자 메일에 의한 사용자를 검색 할 좋아하지만 것 나는 위의 수준에서 사용자의 키를 가지고 내가 어떻게이 일을 성취 할 수 있는지 모르겠다. 사용자 키에 액세스 할 수 없도록 관리자 세션을하고 있습니다.

let usersRef = firebase.database().ref('users'); 
usersRef.orderByValue().on("value", function(snapshot) { 
    console.log(snapshot.val()); 
    snapshot.forEach(function(data) { 
     console.log(data.key); 
    }); 
}); 

을하지만 데이터베이스의 모든 사용자를 제공합니다 :

이 나는 ​​노력했다. 어떤 아이디어?

답변

24

equalTo()을 사용하여 값별로 하위를 찾을 수 있습니다. name하여 귀하의 경우 :

ref.child('users').orderByChild('name').equalTo('John Doe').on("value", function(snapshot) { 
    console.log(snapshot.val()); 
    snapshot.forEach(function(data) { 
     console.log(data.key); 
    }); 
}); 

당신은 here

+0

가 자동 완성 시스템으로 달성이 가능한 모든 문서를 찾을 수 있습니까? 마찬가지로, 사용자가 'John'을 입력하면 관련성을 기준으로 orderByChild를 호출 할 수 있습니까? – Epicality

+0

@Epicality 'startAt()'를 사용하여 언급 한 것처럼 처리 할 수 ​​있습니다. [여기] (https://firebase.google.com/docs/database/web/lists-of-data#filtering_data)에서 모든 문서를 찾을 수 있습니다. 그러나 기본적으로'equalTo()'로 검색하지만 사용자가 입력하는 문자열 만 시작하는지 확인합니다. –

+0

두 필드가 부울 값을 갖는 노드는 어떻게 얻을 수 있습니까? 첫 번째 필드 또는 두 번째 필드는 모두 'true'입니까? –