ios - 如果找不到 whereField
问题描述
在我的应用程序中,我使用了折扣代码,这将检查以下内容:
- 如果折扣码存在
如果折扣代码存在但已被使用。
db.collection("discountCode").whereField("discountID", isEqualTo: txtfield_discountCode.text!).getDocuments(completion: { (query, err) in if let err = err{ print(err.localizedDescription) } else{ for documents in query!.documents{ let data = documents.data() let discountCode = data["discountID"] as? String let percent = data["percent"] as? String let category = data["category"] as? String let expiring = data["expiring"] as? String self.checkIfCodeExists(discountCode: discountCode, percent: percent, category: category, expiring: expiring) } } })
但是即使没有“discountID”等于“txtfield_discountCode.text”的文档,代码也将始终运行到“else-statement”
无论如何我可以检查是否没有找到等于文本字段的字段?
我试过这样做:
- (在其他开头)->
if query!.documents == nil{ print("Code could not be found")}
但这不起作用。
那么无论如何我可以检查“.wherefield”是否没有找到任何文件?
解决方案
问题是您没有错误,您只是从数据库中获取空列表。此外,您应该安全地打开您的选项。
你需要这样的东西:
guard let validCode = txtfield_discountCode.text else {
print("code not entered")
return
}
db.collection("discountCode").whereField("discountID", isEqualTo: validCode).getDocuments(completion: { (query, err) in
if let err = err {
print(err.localizedDescription)
} else {
if let validQuery = query, !validQuery.documents.isEmpty {
for documents in validQuery.documents {
let data = documents.data()
let discountCode = data["discountID"] as? String
let percent = data["percent"] as? String
let category = data["category"] as? String
let expiring = data["expiring"] as? String
self.checkIfCodeExists(discountCode: discountCode, percent: percent, category: category, expiring: expiring)
}
} else {
print("Document not found")
}
}
}
推荐阅读
- html - 如何从解析的动态对象创建项目符号列表
- r - 每个因子组的过滤日期
- java - 将后序遍历值放入数组列表中
- javascript - Blob 在生成 csv 文件时跳过第一列
- python - 在训练期间对度量进行评估时,是否应该将数据批次移动到 CPU 并转换(从 Torch Tensor)到 numpy 数组?
- apexcharts - 如何显示小饼片的数据标签?
- javascript - 我想遍历一个项目以创建一个数组,然后将其存储在数据库的数组字段中。我该怎么做?
- pug - 合并mixin外部属性宽度内部声明的属性而不在Pug中复制“类”键
- php - 革命滑块在本地主机上工作,但不在服务器上
- xslt-1.0 - 如何在xsl中的文本之间给出动态值?