【发布时间】:2021-07-23 12:39:39
【问题描述】:
我正在尝试编写一个搜索函数,该函数将在表格视图中返回搜索到的用户。用户数据保存在 Firestore 数据库(buddiesCollectionRef)中。当我尝试将从 firestore 获取的数据分配到如下所示的字典数组中时,我可以成功地从 firestore 获取数据:private var users = [[String: String]](),
我得到了错误
无法将类型“[String : String]”的值分配给类型“[[String : String]]”
请帮忙。
func searchUsers(query: String) {
//check is array has firebase results
if hasFetched {
//filter results
filterUsers(with: query)
} else {
//fetch and then filter reults
buddiesCollectionRef.addSnapshotListener { snapshot, error in
guard let snap = snapshot else {
debugPrint("Error fetching documents: \(String(describing: error))")
return
}
for document in snap.documents{
if let userInfo = document.data() as? [String: String] {
let name = userInfo["name"] ?? ""
let userId = userInfo["uid"] ?? ""
//test
print("name: \(name), uid: \(userId)")
// update users array with fetched users
self.hasFetched = true
self.users = userInfo
self.filterUsers(with: query)
}
}
}
}
}
func filterUsers(with term: String){
guard hasFetched else {
return
}
self.spinner.dismiss()
let results: [[String:String]] = self.users.filter ({
guard let name = $0["name"]?.lowercased() else {
return false
}
print(name)
return name.hasPrefix(term.lowercased())
})
self.results = results
updateUI()
}
【问题讨论】:
标签: swift google-cloud-firestore