我正在尝试为预订酒店创建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

08-15 20:00