首页 > 解决方案 > 如果找不到 whereField

问题描述

在我的应用程序中,我使用了折扣代码,这将检查以下内容:

但是即使没有“discountID”等于“txtfield_discountCode.text”的文档,代码也将始终运行到“else-statement”

无论如何我可以检查是否没有找到等于文本字段的字段?

我试过这样做:

但这不起作用。

那么无论如何我可以检查“.wherefield”是否没有找到任何文件?

标签: iosswiftgoogle-cloud-firestore

解决方案


问题是您没有错误,您只是从数据库中获取空列表。此外,您应该安全地打开您的选项。

你需要这样的东西:

    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")
            }
        }
    }

推荐阅读