2016-11-04 52 views
0

我嘗試爲酒店預訂創建ios應用程序。我所有的數據都存儲在firebase中。我的酒店名稱和位置存儲在「HotelLocation」表中。如何使用複雜查詢從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格式,但我無法從該表中檢索數據僅用於「鬱多羅」,即如果我搜索鬱多羅那我應該得到

  1. Shuvashish酒店

  2. 博迪酒店

我嘗試用「queryEqualToValu e',但問題在於'uttara,dhaka',因爲firebase區分大小寫。所以'dhaka'正在造成問題。

有沒有在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酒店擁有兩個鬱多地點以及shonargao。深層查詢Hotels節點的位置/ 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 
相關問題