首页 > 解决方案 > 覆盖变量中的值

问题描述

我是 Swift 的新手,遇到了一个棘手的问题。我需要获取 firestore 集合中所有文档的列表。为此,我使用此功能:

@Published var chatList: String!

    func getDataFromDatabaseListenChat() {
        let db = Firestore.firestore()
        db.collection("chatRoom").getDocuments() { (querySnapshot, err) in
            if let err = err {
                print("Error getting documents: \(err)")
            } else {
                for document in querySnapshot!.documents {
                    self.chatList = document.documentID
                    print("\(document.documentID) => \(document.data())")
                }
            }
        }
    }

如果集合中有多个文档,则结果是下一个文档会覆盖变量中的前一个文档,并且在输出中我会得到列表中的一个元素。告诉我如何将所有这些文档添加到数组中,以便它们可以在 swiftui 列表中使用

标签: swiftfirebasegoogle-cloud-firestore

解决方案


你需要

var chatList =  [String]()

然后

self.chatList = querySnapshot!.documents.map{$0.documentID}

推荐阅读