Я работал над приложением ios, которое использует Firebase и GeoFire.Я был в состоянии хранить пользовательские координаты, используя GeoFire в Firebase.Сейчас я пытаюсь загрузить данные пользователя в таблицу с помощью GeoFire, но безуспешно.Без Geofire я смог загрузить все пользовательские данные в таблицу, но теперь он просто показывает пустую таблицу.Кто-нибудь, пожалуйста, дайте мне несколько советов?
var myQuery: GFQuery?
var geoFireRef: DatabaseReference?
var geoFire: GeoFire?
var user = Auth.auth().currentUser
var filteredUsers = [Users]()
var users = [Users]()
var isSearching = false
override func viewDidLoad() {
super.viewDidLoad()
geoFireRef = Database.database().reference(fromURL: "https://yala-2018.firebaseio.com/").child("user_locations")
geoFire = GeoFire(firebaseRef: geoFireRef!)
let userLat = UserDefaults.standard.value(forKey: "current_latitude") as! String
let userLong = UserDefaults.standard.value(forKey: "current_longitude") as! String
let location:CLLocation = CLLocation(latitude: CLLocationDegrees(Double(userLat)!), longitude: CLLocationDegrees(Double(userLong)!))
myQuery = geoFire?.query(at: location, withRadius: 100)
myQuery?.observe(.keyEntered, with: { (key, location) in
if key != Auth.auth().currentUser?.uid {
// print("KEY:\(String(describing: key)) and location:\(String(describing: location))")
let ref = Database.database().reference(fromURL: "https://yala-2018.firebaseio.com/").child("Users").child(key)
ref.observeSingleEvent(of: .value, with: { (DataSnapshot) in
if let dictionary = DataSnapshot.value as? [String: AnyObject] {
let user = Users()
user.name = DataSnapshot.key
// user.setValuesForKeys(dictionary)
user.name = dictionary["name"] as! String
user.age = dictionary["age"] as! String
user.sex = dictionary["sex"] as! String
user.profileImageUrl = dictionary["profilePicUrl"] as! String
self.users.append(user)
print(user.name, user.age, user.profileImageUrl)
DispatchQueue.main.async(execute: {
self.tableView.reloadData()
})
}
})
} else {
print("cannot retrieve users based on location")
}
})
tableView.dataSource = self
tableView.delegate = self
searchBar.delegate = self
searchBar.returnKeyType = UIReturnKeyType.done
tableView.reloadData()
}