【问题标题】:How can I use the section parameter to iterate over each document that's inside of a collection to access the count of a subcollection?如何使用 section 参数遍历集合内的每个文档以访问子集合的计数?
【发布时间】:2020-04-01 20:42:41
【问题描述】:

所以我正在开发我的第一个锻炼跟踪应用程序,这是我第一次使用 Firebase/Firestore,所以我只是想弄清楚是否有一个简单的查询可以用于此...

我的 Firestore 数据库结构如下所示:

/Users/mi9P3TrLwkQ3oDIut/Days/WZ3Q6LDuu1kja/Workouts/BpLGFREoJNzNQW/Exercises/5vRWuHlcJHc/WeightReps/cKrB0Dpf0myEDQV0

基本上我需要返回 numberOfRowsInSection 的值,但我需要访问的值是与一周中的每一天相关联的锻炼次数,我不太确定如何使用该部分参数来遍历我的 Days 集合中的每一天文档,以便访问 Workouts 子集合并获取每天集合中的文档计数。那有意义吗?

我希望这个问题是有道理的。任何帮助将不胜感激!

【问题讨论】:

    标签: ios swift google-cloud-firestore tableview


    【解决方案1】:

    不完全确定我的问题是否正确,但如果您想检索多个文档及其所有属性,您可以这样做:

        var counter = 0
    
        func getData() {
    
        let db = Firestore.firestore()
        let userID = Auth.auth().currentUser!.uid
    
    
        for data in self.dataSourceArray {
             db.collection("users").document(userID).collection("yourCollectionName").document(data.name).collection("yourCollectionName").getDocuments() { ( querySnapshot, error) in
                if let error = error {
                    print(error.localizedDescription)
                } else {
    
                    for document in querySnapshot!.documents {
                        self.counter += 1
                    }
                }
            }
        }
    }
    

    这是你要找的吗?

    【讨论】:

    • 不完全。我正在尝试访问并返回此值... days?[section].workout.count 但我不确定如何在迭代其父集合的文档时获取子集合中所有文档的计数。这有意义吗?
    • 我不太了解您的 Firebase 结构,所以我只是猜测了一下。你必须相应地改变它
    • 对不起,如果很难理解,但我实际上并不是在寻找计数字段的值,我只是想获取每个“锻炼”部分中每个“ Day”节文档,以便为 TableView 方法 numberOfRowsInSection 返回一个值。这更有意义吗?
    • 哦,好吧,那你为什么不直接创建一个counter 并在for document in querySnapshot!.documents 内部增加计数器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 2015-05-17
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多