【发布时间】:2019-07-04 19:57:53
【问题描述】:
我正在尝试通过执行如下查询从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)
}
}
}
}
我从我的模型类中获取订单 ID,它正在打印订单 ID 的值,但是当我尝试将其放入 whereField 查询时,它没有执行查询,我没有得到任何结果在我的控制台中。
如果我这样使用它就可以工作
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "ji20190205091948").getDocuments
但是当我这样使用时
let orderid = saleOrder.first?.Orderid ?? ""
self.db.collection("SaleOrders").whereField("orderid", isEqualTo: "\(orderid)").getDocuments
它不工作。我在做什么错了。请帮忙?
【问题讨论】:
-
orderId 已经是
String不写"\(orderid)"只写self.db.collection("SaleOrders").whereField("orderid", isEqualTo: orderid).getDocuments -
我试过了,但是不行
-
哦,好吧,这是可选的。所以像
guard let orderid = saleOrder.first?.Orderid else { return }一样解开它,然后做self.db.collection("SaleOrders").whereField("orderid", isEqualTo: orderid).getDocuments -
还是一样不工作:(
-
打开包装后是否打印相同的值?我没有看到问题的任何其他原因\
标签: ios swift google-cloud-firestore