我有一个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搜索用户查询的最有效方法吗?

干杯