如何从Firebase获取名称以某个字符串开头的记录?

时间:2017-03-03 00:23:25

标签: ios swift firebase swift3 firebase-realtime-database

您如何查询Firebase以返回名称以特定字符串开头的子项?

我正在尝试将Firebase与此autocomplete textfield project一起使用。

他们使用NSURLSession来获取以在文本字段中输入的字母开头的单词:

window.fbAsyncInit

我如何使用Firebase执行此操作?

我认为可以使用isEqual查询完全匹配但是查询是否有开头?

private func handleTextFieldInterfaces(){
 autocompleteTextfield.onTextChange = {[weak self] text in
  self?.fetchAutocomplete(text)
 }
}

private func fetchAutocomplete(keyword:String) {
 dataTask = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
 if let data = data{
  do{
   let predictions = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)
   var locations = [String]()
   for dict in predictions as! [NSDictionary]{
    locations.append(dict["description"] as! String)
   }
   dispatch_async(dispatch_get_main_queue(), { () -> Void in
    self.autocompleteTextfield.autoCompleteStrings = locations
   })
 })
 dataTask?.resume()
}

1 个答案:

答案 0 :(得分:1)

您可以使用queryStartingAtValuequeryEndingAtValue查询以特定子字符串开头的字符串。

ref.queryStarting(atValue: "value")
   .queryEnding(atValue: "value\\uf8ff")

请参阅Firebase documentation on sorting and filtering

还建议: