2016-09-04 5 views
1

사용자가 Firebase에서 사용자를 검색 할 수있는 검색 창을 찾고 있습니다. 정확히 일치하는 항목을 검색하는 대신 입력 할 때 테이블 뷰를 업데이트 할 수 있습니다.Firebase로 필터링 된 검색 결과가 있습니까?

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { 
    if searchBar.text == nil || searchBar.text == "" { 
     inSearchMode = false 
     tableView.reloadData() 
    } else { 
     inSearchMode = true 
     let lower = searchBar.text!.lowercaseString 

     filteredPeopleArray = peopleArray.filter({$0.title.hasPrefix(lower) != nil}) 
     tableView.reloadData() 
} 

이 코드는 작동하지만, 내가 모든 단일 사용자 현재 중포 기지에 그들이 응용 프로그램 동안 생성되는 것으로 끊임없이 새로운 사용자를 추가 할하는 배열을 채우기 위해 무엇이 필요로하는 부하에 열려 있습니다.

구문 분석에서 "키가있는 문자열을 포함하는 사용자 찾기"를 사용하고 textDidChange에서 구문 분석 할 쿼리가 있지만 Firebase에 대한 것과 같은 내용이 표시되지 않습니다. 또한, 편지를 입력 할 때마다 firebase에 질의를 보내기 위해 데이터에 어떤 방식 으로든 세금을 부과하지 않겠습니까?

일부 문자를 입력하고 해당 접두어가 이름에있는 서버에서 사용자 목록을 반환하는 경우와 같은 Instagram에서 사용되는 방법은 무엇입니까? 그래서 "보"가 밥과 밥비의 목록을 반환 할 수도 있습니다.

답변

4

나는 말할 수 없다. 그러나 여기에 도움이되는 기사가있다.

https://www.quora.com/How-would-you-search-a-Firebase-Realtime-Database-with-a-substring

하자 예를 아래에

{ 
    "lambeosaurus": { 
    "dimensions": { 
     "height" : 2.1, 
     "length" : 12.5, 
     "weight": 5000 
    } 
    }, 
    "stegosaurus": { 
    "dimensions": { 
     "height" : 4, 
     "length" : 9, 
     "weight" : 2500 
    } 
    } 
} 

(가) 이름이 문자 "B"로 시작하는 모든 공룡을 발견하면 중포 기지 데이터 이하가 말한다.

var ref = new Firebase("https://example.firebaseio.com/"); 
ref.orderByKey().startAt("b").endAt("b\uf8ff").on("child_added", function(snapshot) { 
    console.log(snapshot.key()); 
}); 
+0

그래서 난 그냥 그 쿼리를 할 것입니다 내 텍스트 필드의 "textDidChange"또는 무엇이든? 모든 키 스트로크에서 firebase에 대한 요청을하는 것은 잔인합니다. 아니면 이렇게 검색 할 때 앱이하는 일입니까? –

+0

링크를 게시 할 때마다 링크를 언급하지 마십시오. 또한 포함 된 내용을 포함하고 응답 자체에 코드를 제공하십시오. –

+1

나는 링크를 덧글로 올렸을 것이다. 그러나 그 때 담당자를 두지 않았지만, @Adarsh ​​ – Callam

관련 문제