我有一个ios应用程序(swift 4) . 我正在通过以下查询通过用户名对用户进行firebase数据库搜索:
func loadFirebaseData(){
if uid != nil {
FBDataservice.ds.REF_USERS.observeSingleEvent(of: .value) { (snapshot) in
self.allUsers = []
if let snapshot = snapshot.value as? Dictionary<String, Any> {
for snap in snapshot {
let userid = snap.key
if let cred = snap.value as? Dictionary<String, Any> {
if self.uid != snap.key {
if let credentials = cred["credentials"] as? Dictionary<String, Any> {
let user = User(userid: userid, userData: credentials)
print(user.username)
self.allUsers.append(user)
}
}
}
}
}
self.collectionView.reloadData()
}
}
}
@objc func searchUsersOnEdit(_ textfield: UITextField) {
mainview = viewsarr?.first as! SearchEmpty
self.filterData.removeAll()
if textfield.text?.count != 0 {
for user in allUsers {
if let matchingString = user.username {
let range = matchingString.lowercased().range(of: textfield.text!, options: String.CompareOptions.caseInsensitive, range: nil, locale: nil)
if range != nil {
self.filterData.append(user)
}
}
}
} else {
mainview.removeFromSuperview()
}
mainview.removeFromSuperview()
if filterData.count == 0 {
if textfield.text?.count != 0 { setLabel() }
}
self.collectionView.reloadData()
}
我的firebase文档如下所示:
users
|-userid
|-credentials
|-username
现在,问题是每当创建一个新用户时,该搜索永远不会更新 . 我完全无法从应用程序中找到此用户的任何信息 . 此外,如果再次搜索他,新创建的用户需要大约48小时才能显示 . 如果不采用该路径,重新安装应用程序只会使该用户出现在搜索结果中 .
我完全无法理解为什么会出现这种行为 . 这有什么不对吗?
这也是进行firebase搜索用户查询的最有效方法吗?
干杯