我正在尝试在Firestore中过滤数据,然后在将信息打印到控制台时得到所有文档。 Firestore数据库的结构如下:
/Collection
/auto-doc ID
/ hosp : "hosp1"
team : "team1"
(there are more fields in every document)
出于测试目的,我只有六个文档,其中两个具有我要过滤并打印到控制台(hosp1)的字段。
@IBAction func getData2(_ sender: Any) {
if HOSP != "hosp1" {
query = Firestore.firestore().collection(PTLIST_REF).whereField("hosp", isEqualTo: "hosp1")
ptListCollectionRef.getDocuments { (snapshot, error) in
if let err = error {
debugPrint("error getting data: \(err)")
}
else {
for document in (snapshot?.documents)! {
print(document.data())
}
}
答案 0 :(得分:2)
您正在获取所有文档,因为您是在集合引用而不是查询上调用getDocuments()
函数。换句话说,您根本不会应用任何过滤器。为了能够过滤数据,请更改以下代码行:
ptListCollectionRef.getDocuments {/* ... */}
到
query.getDocuments {/* ... */}