我有一个Firestore函数,可将数据添加到集合中:
func blockUser(userId: String) {
Firestore.firestore().collection("blocked").document(Auth.auth().currentUser!.uid).collection("userBlocked").document(userId).setData([:])
}
工作正常,创建一个结构(如预期):
,并在userBlocked集合中添加一个用户ID,该用户ID如下所示:
我正在尝试检索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
答案 0 :(得分:1)
您将必须编写代码来从传递到回调的QuerySnapshot中获取文档数据。我建议从documentation开始。
在您的代码中,snap
是QuerySnapshot,而document
是QueryDocumentSnapshot。您可以从链接的API文档中看到QueryDocumentSnapshot具有data()方法,该方法可以将文档数据作为字典获取。
但是,您没有在文档中写入任何字段,因此字典将为空。如果需要文档的ID,则可以使用document.documentID
。