Итак, я пытаюсь найти местоположение «парного пользователя» (то есть не текущего пользователя, а контакта текущего пользователя) и отслеживать пройденное расстояние и расстояние относительно currentUser. При использовании приведенного ниже кода я могу только получить список с несколькими записями одного и того же местоположения, а не постоянно получать только новое обновление местоположения «парного пользователя».
func retrieveLocations() {
let locationDB = Database.database().reference().child("Locations").child("nameOfUser")
locationDB.queryLimited(toLast: 1).observe(.childAdded)
{ (snapshot) in
let snapshotValue = snapshot.value as! Dictionary<String,Any>
let lats = snapshotValue["Lat"]
let longs = snapshotValue["Lon"]
let timeOf = snapshotValue["Time"]
let sender = snapshotValue["Sender"]
let otherUsersLocations = CLLocation(latitude: CLLocationDegrees(truncating: lats! as! NSNumber), longitude: CLLocationDegrees(truncating: longs! as! NSNumber), timestamp: timeOf as! Int)
print("Latitude: \(otherUsersLocations.coordinate.latitude), Longitude: \(otherUsersLocations.coordinate.longitude), Time: \(timeOf), Sender: \(sender)")
Позже я вызываю функцию в той же функции, которую использую для обновления местоположения текущего пользователя. Приведенный ниже код используется для обновления местоположения текущего пользователя до firebase. Скриншот базы данных Firebase
let locationDictionary = [
"Sender": Auth.auth().currentUser?.email,
"Lat": latitude,
"Lon": longitude,
"Speed": speed,
"Time": ServerValue.timestamp()
] as [String : Any]
locationDB.childByAutoId().setValue(locationDictionary) {
(error, reference) in
if error != nil {
print(error!)
}
else {
}
}
}
retrieveLocations()
Я пытался создать новый объект "LocationModel", но у меня возникли проблемы с загрузкой словаря типа LocationModel из полученных данных из firebase.
Поэтому моя цель - извлечь массив / словарь данных о местоположении для парного пользователя из «сейчас» и впоследствии измерить расстояние до currentUser.
Я сижу на этом некоторое время, поэтому я очень ценю любые предложения.
Большое спасибо!
Pat