Firestore первый запрос - PullRequest
       6

Firestore первый запрос

0 голосов
/ 07 января 2019

Я пытаюсь выполнить мой первый запрос в Firestone, но не могу правильно увидеть результаты. Может ли кто-нибудь помочь мне? Пожалуйста, посмотрите на код и изображение enter image description here

import UIKit
import Firestore
import Firebase

class ViewControllerFirestone: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

       simpleQueries()

    }

    private func simpleQueries() {

        let db = Firestore.firestore()


        let citiesRef = db.collection("cities")


        let myQuery = citiesRef.whereField("state", isEqualTo: "CA")

        print ("My query is retrieving this : \(myQuery)")


    }
}

1 Ответ

0 голосов
/ 07 января 2019

После того, как вы построите свой запрос, вы должны затем запросить базу данных - вот как вы получите данные обратно. Возвращаемые данные - это пользовательский объект Firestore (QuerySnapshot), который имеет ряд свойств, одним из которых является documents, который является массивом другого пользовательского объекта Firebase (FIRDocumentSnapshot). Из этого свойства находятся ваши данные. У объекта FIRDocumentSnapshot есть метод с именем get(), который может извлекать данные для вас (вы также можете использовать более синтаксический идиоматический словарь и не использовать метод get()). Прочитайте документацию Firestore онлайн; это часто мучительно кратко, но это работает.

import UIKit
import FirebaseFirestore

class ViewControllerFirestone: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        simpleQueries()
    }

    private func simpleQueries() {

        let db = Firestore.firestore()
        let citiesRef = db.collection("cities")
        let myQuery = citiesRef.whereField("state", isEqualTo: "CA")

        myQuery.getDocuments { (snapshot, error) in

            guard let snapshot = snapshot,
                error == nil else { // error
                    return print("database error: \(error!)")
            }

            guard !snapshot.isEmpty else { // no data
                return print("no data")
            }

            // data fetched, loop through documents

            for doc in snapshot.documents {

                guard let stateProperty = doc.get("state") as? String else {
                    continue // continue loop
                }
                print(stateProperty)

            }

        }

    }

}

В качестве примечания, это хорошее место, чтобы использовать очереди отправки для обработки ваших результатов в фоновом режиме, поскольку данные, возвращаемые Firestore, всегда будут в главном потоке. Этот пример не использует очереди.

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