您如何查询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()
}
答案 0 :(得分:1)
您可以使用queryStartingAtValue
和queryEndingAtValue
查询以特定子字符串开头的字符串。
ref.queryStarting(atValue: "value")
.queryEnding(atValue: "value\\uf8ff")
请参阅Firebase documentation on sorting and filtering。
还建议: