首页 > 解决方案 > Swift - Firestore 通过检索错误的订单数组

问题描述

我有一个奇怪的问题,我正在检索数据,但不知何故 Firestore 以错误的顺序检索文档,我不知道为什么。

这是我的代码(查看print-tests 以获得更好的理解):

func getWishes (){
    let db = Firestore.firestore()
    let userID = Auth.auth().currentUser!.uid

    var counter = 0

    for list in self.dataSourceArray {
        print(list.name) // -> right order
    }

    for list in self.dataSourceArray {
        db.collection("users").document(userID).collection("wishlists").document(list.name).collection("wünsche").getDocuments() { ( querySnapshot, error) in
            print(list.name) // -> wrong order
            if let error = error {
                print(error.localizedDescription)
            }else{
                // create new Wish array
                var wList: [Wish] = [Wish]()
                for document in querySnapshot!.documents {
                    let documentData = document.data()
                    let wishName = documentData["name"]
                    wList.append(Wish(withWishName: wishName as! String, checked: false))
                }

                self.dataSourceArray[counter].wishData = wList
                counter += 1
            }
        }
    }
}

这是我的git

标签: iosswiftfirebasegoogle-cloud-firestore

解决方案


推荐阅读