2017-06-15 49 views
1

支持我有一個數據庫,如下圖所示:查詢在火力地堡數據庫關鍵字

{ 
    "eventAttendees" : { 
    "fm" : { 
     "9" : "Alice", 
     "23" : "Khanh", 
     "43" : "Bach" 
    } 
    }, 
    "events" : { 
    "fm" : { 
     "date" : "2017-06-16", 
     "name" : "I love Firebase Meetup in Tokyo yesterday". 
    }, 
    "gm" : { 
     "date" : "2017-08-12", 
     "name" : "Meet Linh" 
    } 
    }, 
    "users" : { 
    "1" : { 
     "name" : "David" 
    }, 
    "2" : { 
     "name" : "Alice" 
    }, 
    "10" : { 
     "name" : "Khanh" 
    } 
    } 
} 

如果我查詢關鍵字「火力地堡Meetup網站」,它的工作原理。

let query = ref.child("events").queryOrdered(byChild: "name").queryEqual(toValue: "Firebase Meetup").queryLimited(toFirst: 1) 
     query.observe(.value, with: { (snapshot) in 
      let content = snapshot.value as? [String : AnyObject] ?? [:] 
      print(content) 

- >返回

["fm": { 
    date = "2017-06-16"; 
    "name" : "I love Firebase Meetup in Tokyo yesterday". ; 
}] 

,但如果我查詢關鍵字 「火力地堡」,這是行不通的。

如果可以查詢「Firebase」並獲得如下結果?

["fm": { 
      date = "2017-06-16"; 
      "name" : "I love Firebase Meetup in Tokyo yesterday". ; 
     }] 
+0

查看'queryStartingAtValue'和'queryEndingAtValue':https://firebase.google.com/docs/database/ios/lists-of-data#filtering_data –

回答

0

可以使用startAt()函數:

let query = ref.child("events").queryOrdered(byChild: "name").queryStart(at: "I love Firebase").queryLimited(toFirst: 1) 
     query.observe(.value, with: { (snapshot) in 
      let content = snapshot.value as? [String : AnyObject] ?? [:] 
      print(content) 

文檔這裏https://firebase.google.com/docs/reference/js/firebase.database.Query#startAt

另外,如果你想開始與火力地堡或聚會結束,只是做:

let query = ref.child("events").queryOrdered(byChild: "name").queryStart(at: "Firebase").queryEnd(at: "in Tokyo yesterday").queryLimited(toFirst: 1) 
     query.observe(.value, with: { (snapshot) in 
      let content = snapshot.value as? [String : AnyObject] ?? [:] 
      print(content) 

此處的文檔https://firebase.google.com/docs/reference/js/firebase.database.Query#startAt

+0

startAt將工作,因爲「Firebase」位於字符串的開頭。如果我查詢「Meetup」會怎麼樣? – John

+0

@約翰,在你的問題中,這是你問的,或者我錯了?你想達到什麼目的? –

+0

@John我更新了答案,讓我知道如果這是你期望:) –