2017-03-22 6 views
0

이름을 기준으로 사용자를 검색하려고합니다. 이름에서 이름이 주어 지지만 두 번째 이름에서 문자열을 검색하지 않으면 완벽하게 검색합니다. 첫 번째와 두 번째 둘 다 공백으로 구분 된 하나의 값으로 저장됩니다 (예 : "John Smith"). "john"또는 "jo"등에서 검색하면 레코드를 검색하지만 스미스가 검색하면 아무것도 검색하지 않습니다. 코드 조회와문자열에 대한 "유사"검색

var ref = firebase.database().ref().child('User').orderByChild("name").startAt(searchString).endAt(searchString + "\uf8ff"); 
    $scope.usercollection = $firebaseArray(ref); 
+0

: 이러한 메커니즘을 구현하기 위해 웹 몇 가지 가능성에 예컨대을 찾을 수 있습니다. 그들은'contains()'연산자를 수행 할 수 없습니다. http://stackoverflow.com/questions/22506531/how-to-perform-sql-like-operation-on-firebase를 참조하십시오. Firebase는 또한 클라우드 기능과의 통합을 발표했습니다.이 기능을 사용하면 Google 인프라를 통해 이러한 검색 인덱싱을 수행 할 수 있습니다. 검색 유스 케이스를 보려면 https://firebase.google.com/docs/functions/use-cases#other_ways_to_integrate_with_third-party_services_and_apis를 참조하십시오. –

답변

3

당신이 단지 등 J, 조, 요, 존,로 시작하는 결과를 얻을 정상합니다 ... startAt 방법은 "지정된 시작 지점과 쿼리를 생성." 따라서 검색 문자열 변수 으로 시작하는 방법을 살펴 봅니다.

현재 Firebse에는 전체 텍스트 검색 메커니즘이 없습니다. 중포 기지 데이터베이스 쿼리는 문자열의 처음부터 검색 할 수 있습니다 : 당신이 예상되는 동작입니다

https://firebase.googleblog.com/2014/01/queries-part-2-advanced-searches-with.html

http://firebase.github.io/flashlight/