Цикл через базу данных Firestore - PullRequest
0 голосов
/ 09 февраля 2019

Я хочу выполнить цикл, хотя моя база данных Firestore, чтобы получить общее расстояние от всех моих документов, объединяет

Firestore Image

В настоящее время я использую этот запрос, чтобы получить общее количество документов

    firebaseDB.collection("journey").document(key).collection("journeys")
        .getDocuments() { (querySnapshot, err) in
            if let err = err {
                print("Error getting documents: \(err)")
            }
            else
            {
                var totalJourney = 0
                for document in querySnapshot!.documents {
                    totalJourney += 1
                    print("\(document.documentID) => \(document.data())");
                }
                print("totalJourney = \(totalJourney)");
                self.totalJourney.text = String(totalJourney)
            }
        }

1 Ответ

0 голосов
/ 09 февраля 2019

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

Моя структура немного меньше вашей, и я использовал дочерний узел с именем «мили» вместо расстояния, но концепция та же.

func readJourneys() {
    self.db.collection("journeys").getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            let count = querySnapshot!.documents.count

            var totalMiles = 0
            for document in querySnapshot!.documents {
                //let journeyId = document.documentID
                let miles = document.get("miles") as! Int
                totalMiles += miles
            }
            print("There were: \(count) journeys covering: \(totalMiles) miles")
        }
    }
}

и вывод

There were: 3 journeys covering: 20 miles
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...