通过Firestore数据库循环

时间:2019-02-08 21:09:56

标签: ios swift firebase google-cloud-firestore

我希望遍历我的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 :(得分:2)

您的代码并不是遥不可及,但是您的代码中缺少一些东西-例如,读取每个节点中的距离子对象并将其求和。这是一些示例代码,用于输出旅程次数和总行驶里程。

我的结构比您的结构浅一些,我使用了一个名为“ miles”的子节点来代替距离,但是概念是相同的。

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