我正在尝试通过执行以下查询从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)
}
}
}
}
我正在从我的Model类中获取订单编号,并打印出订单编号的值,但是当我尝试将其放入whereField
查询中时,查询不执行,我在控制台上没有得到任何结果。
如果我像这样使用它,它可以工作
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "ji20190205091948").getDocuments
但是当我像这样使用时
let orderid = saleOrder.first?.Orderid ?? ""
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "\(orderid)").getDocuments
它没有起作用。我做错了什么?请帮忙吗?
String
,不要写"\(orderid)"
,直接使用self.db.collection("SaleOrders").whereField("orderid", isEqualTo: orderid).getDocuments
。 - Galo Torres Sevillaguard let orderid = saleOrder.first?.Orderid else { return }
然后执行self.db.collection("SaleOrders").whereField("orderid", isEqualTo: orderid).getDocuments
- Galo Torres Sevilla