从 Firestore Swift 获取文档 ID

Win*_*ngs 3 ios swift google-cloud-firestore

我试图Firestore通过执行如下查询来获取文档 ID:-

func updateStatusInFirestore() {

let orderid = saleOrder.first?.Orderid ?? ""
print(orderid)
let settings = db.settings
settings.areTimestampsInSnapshotsEnabled = true
db.settings = settings
 self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "\(orderid)").getDocuments { (snapshot, err) in

    if let err = err {
        print("Error getting documents: \(err)")
    } else {
        for document in snapshot!.documents {
            self.documentid = document.documentID
            print(self.documentid)
        }
    }
}

}
Run Code Online (Sandbox Code Playgroud)

其中我从模型类中获取订单 id,并且它正在打印订单 id 的值,但是当我尝试将其放入whereField查询中时,它不会执行查询,并且我在控制台中没有得到任何结果。

如果我这样使用它就可以工作

self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "ji20190205091948").getDocuments
Run Code Online (Sandbox Code Playgroud)

但是当我这样使用时

let orderid = saleOrder.first?.Orderid ?? ""
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "\(orderid)").getDocuments
Run Code Online (Sandbox Code Playgroud)

它不起作用。我做错了什么。请帮忙?

Win*_*ngs 5

我解决了这个问题。我们只需要添加一个if条件即可从中获取该特定集合的 documentIdFirestore

for document in snapshot!.documents {

  if document == document {
   print(document.documentID)
     }
       }
Run Code Online (Sandbox Code Playgroud)