阅读Firebase集合中的文档

时间:2020-06-27 15:45:40

标签: swift firebase google-cloud-firestore swiftui

我有一个Firestore函数,可将数据添加到集合中:

func blockUser(userId: String) {
    Firestore.firestore().collection("blocked").document(Auth.auth().currentUser!.uid).collection("userBlocked").document(userId).setData([:])
}

工作正常,创建一个结构(如预期):

enter image description here

,并在userBlocked集合中添加一个用户ID,该用户ID如下所示:

enter image description here

我正在尝试检索userBlocked,内容如下:

    Firestore.firestore().collection("blocked").document(Auth.auth().currentUser!.uid).collection("userBlocked").getDocuments{(snapshot,error) in
        guard let snap = snapshot else {
            print("error getting blocked users")
            return
        }
        //var blockedUsers = [User]()
        for document in snap.documents {
            let dict = document
            print("printing blocked user - \(dict)")
        }
    }

在日志中即时获取:

printing blocked user - <FIRQueryDocumentSnapshot: 0x6000015c3610>

我要检索每个被阻止的用户吗?但似乎无法获取每个用户ID,应该返回d8j5fU8rinUcAEZyNZ5qAIzoa1j2

1 个答案:

答案 0 :(得分:1)

您将必须编写代码来从传递到回调的QuerySnapshot中获取文档数据。我建议从documentation开始。

在您的代码中,snapQuerySnapshot,而documentQueryDocumentSnapshot。您可以从链接的API文档中看到QueryDocumentSnapshot具有data()方法,该方法可以将文档数据作为字典获取。

但是,您没有在文档中写入任何字段,因此字典将为空。如果需要文档的ID,则可以使用document.documentID