Как получить конкретные значения от детей в firebase, используя Swift 4? - PullRequest
0 голосов
/ 28 ноября 2018

Моя база данных Firebase

enter image description here

Более конкретно, у меня есть случайно сгенерированные дочерние элементы (списки), и из этих случайно сгенерированных списков я хотел бы получитьстроковое значение из ключей.

Например, если я хотел получить URL-адрес фото, я хотел бы получить строковое значение ключа "PhotoURL:".

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Сначала вам нужно сделать import Firebase, а затем вызвать функцию из класса Database, например:

let ref = Database.database().reference().child("Listings")

Вы можете рекурсивно вызвать child, чтобы углубиться в ваше дерево

//.child("Listings").child("SomeListing").child("PhotoURL")

Затем вызовите applySingleEvent, чтобы получить значения из firebase.Ваше значение сохраняется в переменной снимка

ref.observeSingleEvent(of: .value, with: { (snapshot) in    
            guard let listingsDictionary = snapshot.value as? [String: Any] else { return }

            listngsDictionary.forEach({ (key, value) in
                       // Here you can iterate through it
            })
        }) { (err) in
            print("Failed to fetch following listings:", err)
        }
0 голосов
/ 28 ноября 2018

Вот код для получения дочерних значений из списков.

var ListArr = [ListModel]()


let ref = Database.database().reference().child("Listings")
        ref.observe(.childAdded, with: { (snapshot) in
            print(snapshot)
            guard let dictionary = snapshot.value as? [String : AnyObject] else {
                return
            }

            let Obj = ListModel()
            Obj.UID = snapshot.key
            Obj.PhotoURL = dictionary["PhotoURL"] as? String

            self.ListArr.append(Obj)

        }, withCancel: nil)

}

Вы можете настроить класс модели

class ListModel: NSObject {
    var UID:String?
    var PhotoURL:String? 
}
...