Как обработать запрос firestore, когда я получаю результат снимка как FIRQuerySnapshot` - PullRequest
0 голосов
/ 03 сентября 2018

У меня возникла проблема при обработке запроса в пожарном депо, так как мой код здесь

let wallpaperRef = Firestore.firestore().collection("wallpaper").order(by: "noOfDownloads", descending: true)

wallpaperRef.getDocuments(completion: { (snap, error) in
    if error == nil {
        print(snap)
    }

})

Теперь вывод этого запроса:

Optional(<FIRQuerySnapshot: 0x600000070640>)
Optional(<FIRQuerySnapshot: 0x600000070640>)
Optional(<FIRQuerySnapshot: 0x6000000705c0>)

Я хочу взять этот querysnap и получить данные, которые есть в init для чтения формы

1 Ответ

0 голосов
/ 03 сентября 2018

Если вы выполните запрос к коллекции, вы получите QuerySnapshot, который содержит (возможно) несколько документов. Чтобы получить каждый документ, вам нужно перебрать результаты. Из документации Firebase по чтению нескольких документов :

db.collection("cities").whereField("capital", isEqualTo: true)
    .getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                print("\(document.documentID) => \(document.data())")
            }
        }
}

Итак, ваш код просто отсутствует в цикле из этого блока else. Что-то вроде:

wallpaperRef.getDocuments(completion: { (snap, error) in
    if error == nil {
        print(snap)
    } else {
        for document in snap!.documents {
            print("\(document.documentID) => \(document.data())")
        }
    }
})
...