我正在尝试为预订酒店创建ios应用程序。我所有的数据都存储在firebase中。我酒店的名称和位置存储在“ HotelLocation”表中。
{
"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,则应该
舒瓦什酒店
博迪酒店
我尝试使用“ queryEqualToValue”,但问题是“ uttara,dhaka”,因为firebase区分大小写。所以',dhaka'造成了问题。
有什么方法可以在Firebase中使用SQL命令“%LIKE%”?
最佳答案
如果使用queryStartingAt(“ uttara”)和queryEndingAt(“ uttara”),它将返回您想要的节点。
您只是无法对通配符char进行精确搜索。
还有很多其他方法可以解决此问题,例如...
为引用酒店的位置创建一个节点,就像这样,然后您只需读入该节点,便可以看到酒店列表:
uttara
H3: true
H4: true
或者另一个选择是创建对位置的引用-假设Shuvashish Hotel在uttara和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