2016-11-04 6 views
0

나는 호텔 예약을 위해 ios 응용 프로그램을 만들려고합니다. 내 모든 데이터는 firebase에 저장됩니다. 내 호텔의 이름과 위치는 "호텔 위치"테이블에 저장됩니다.복잡한 쿼리를 사용하여 Firebase에서 데이터를 검색하려면 어떻게합니까?

{ 
"HotelLocation": { 
    "H1": { 
     "name": "Ghetu hotel", 
     "location": "shonargao,dhaka" 
    }, 
    "H2": { 
     "name": "BB hotel", 
     "location": "gulshan,dhaka" 
    }, 
    "H3": { 
     "name": "Shuvashish hotel", 
     "location": "uttara,dhaka" 
    }, 
    "H4": { 
     "name": "Bodi hotel", 
     "location": "uttara,dhaka" 
    } 
    } 
} 

이 테이블 'HotelLocation'내 JSON 형식입니다하지만 난 uttara을 검색하는 경우 즉, 그때 가야 전용 'uttara'이 테이블에서 데이터를 검색 할 수 없습니다입니다

  1. Shuvashish 호텔

  2. Bodi 호텔

나는 'queryEqualToValu를 사용하여 시도 e '이지만 문제는'uttara, dhaka '입니다. 왜냐하면 firebase는 대소 문자를 구분하기 때문입니다. 그래서 '다카'가 문제를 일으키고 있습니다.

Firebase에서 SQL 명령 "% LIKE %"를 사용하는 방법이 있습니까?

+0

Firebase에는 와일드 카드 텍스트 검색 작업이 없습니다. http://stackoverflow.com/questions/22506531/how-to-perform-sql-like-operation-on-firebase, http://stackoverflow.com/questions/39058119/firebase-database-requests-and-queries를 참조하십시오. -like-sql-where-in 및 http://stackoverflow.com/questions/31036903/how-can-i-achieve-this-many-to-many-relationship-in-firebase –

답변

1

queryStartingAt ("uttara") 및 queryEndingAt ("uttara")를 사용하면 원하는 노드가 반환됩니다.

와일드 카드 문자로 정확하게 검색 할 수 없습니다.

이 같은 호텔을 참조하는 위치에 대한 노드를 만들기 ...이 같은 해결하기위한 다른 방법의 무리가 있습니다, 당신은 단지 해당 노드에서 읽을 수 있습니다 당신은 목록을 가지고 호텔 :

uttara 
    H3: true 
    H4: true 

또는 또 다른 옵션은 위치에 대한 참조를 만드는 것입니다 일 - Shuvashish 호텔은 모두 uttara의 위치뿐만 아니라 shonargao을 가지고 가정합니다. 심도있는 위치에 대한 호텔 노드/L1 = true가 반환됩니다. H3

locations 
    L1: "uttara" 
    L2: "gulshan" 
    L3: "shonargao" 


Hotels 
    H2 
     "name:": "BB hotel" 
     "locations" 
      L2: true 
    H3 
     "name": "Shuvashish hotel", 
     "locations" 
      L1: true 
      L3: true 
관련 문제