Структурирование запроса данных о местонахождении в реальном времени из FireBase с помощью Swift - PullRequest
0 голосов
/ 10 ноября 2018

Итак, я пытаюсь найти местоположение «парного пользователя» (то есть не текущего пользователя, а контакта текущего пользователя) и отслеживать пройденное расстояние и расстояние относительно 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...