【发布时间】:2021-03-15 14:18:27
【问题描述】:
我的 searchBar 文本正在更新我的查询,但没有像我预期的那样从 Firestore 返回数据。
这是我的数据模型中的方法:
func getMealPlans(starred starredOnly:Bool = false, textToQuery searchText:String = "") {
listener?.remove()
let db = Firestore.firestore()
var query:Query = db.collection("mealPlans")
query = query.whereField("title", isGreaterThanOrEqualTo: searchText)
func queryData() {
self.listener = query.addSnapshotListener({ (snapshot, error) in
// Check for errors
if error == nil && snapshot != nil {
var mealPlans = [MealPlan]()
// Parse documents into mealPlans
for doc in snapshot!.documents {
let m = MealPlan(
docID: doc["docID"] as? String,
title: doc["title"] as! String)
mealPlans.append(m)
}
// Call the delegate and pass back the notes in the main thread
DispatchQueue.main.async {
self.delegate?.mealPlansRetrieved(mealPlans: mealPlans)
}
}
})
}
queryData()
}
这是我在视图控制器中的搜索栏方法:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
let searchedText = searchText.lowercased()
model.getMealPlans(textToQuery: searchedText)
self.tableView.reloadData()
}
我想知道我的模型中的 query = query.whereField("title", isGreaterThanOrEqualTo: searchText) 是否可能是我问题的根源。当我在此代码之后print(searchText) 时,我键入的searchText 按预期显示在控制台中。但是表格视图不会随着具有匹配 title 的单元格更新,即使它是完全 匹配。
【问题讨论】:
标签: ios swift firebase google-cloud-firestore uisearchbar