У меня есть база данных Firebase с вложенными словарями, прикрепленными к методу Firebase autoId ().
Snap (donators-items) {
"-LjGwJLdBoFugIaPMVJg" = {
description = "Yummy Pasta";
latitude = "44.93926644825692";
longitude = "4.872616600173217";
name = "Pasta";
pickUpDate = "2019-07-09T16:15:53+02:00";
selectedType = "Food";
};
"-LjGwWkbOzeXJ6U3JO7r" = {
description = "Brand new shirt";
latitude = "44.93607125515575";
longitude = "4.878479988801786";
name = "Cool T-shirt";
pickUpDate = "2019-07-12T16:15:41+02:00";
selectedType = "Clothes";
};
}
Я использую этот метод для извлечения словаря базы данных.
var donatorsItems = [DonatorItem]()
func fetchDonatorsItemsFromFirebase() {
donatorsItems.removeAll()
rootRef.child(FirebaseRoot.donatorsItems.rawValue).observe(.value) {
(snapshot) in
if let idDict = snapshot.value as? NSDictionary {
let ids = idDict.allKeys
for key in ids {
if let nestedDict = idDict[key] as? FirebaseDictionary {
print(nestedDict)
}
}
}
}
}
При печати nestedDict я заполняю два вложенных словаря в неупорядоченной коллекции.
Какя могу получить данные, чтобы добавить их в мой объект DonatorItem и отправить их в порядке от ближе к дальнейшему, используя широту и долготу каждого объекта?
Я создал функцию, которая вычисляет расстояние между пользователем иширота, долгота объекта.
func getDistanceFromUserToMeetingPoint(_ meetingPointLatitude: Double, _ meetingPointLongitude: Double, vc: UIViewController) -> Double