ios - 无法过滤 Firestore 中的数据

标签 ios swift firebase filter google-cloud-firestore

我正在尝试过滤 Firestore 中的数据,当我将信息打印到控制台时,我得到了所有文档。 Firestore 数据库的结构如下:

/Collection
   /auto-doc ID
        / hosp : "hosp1"
          team : "team1"
          (there are more fields in every document)

出于测试目的,我只有六个文档,其中两个具有我要过滤并打印到控制台 (hosp1) 的字段。

@IBAction func getData2(_ sender: Any) {

    if HOSP != "hosp1" {
        query = Firestore.firestore().collection(PTLIST_REF).whereField("hosp", isEqualTo: "hosp1")
        ptListCollectionRef.getDocuments { (snapshot, error) in
            if let err = error {
                debugPrint("error getting data: \(err)")
            }
            else {
                for document in (snapshot?.documents)! {
                    print(document.data())
                }
            }

最佳答案

您正在获取所有文档,因为您是在集合引用上而不是在查询上调用 getDocuments() 函数。换句话说,您根本没有应用任何过滤器。为了能够过滤您的数据,请更改以下代码行:

ptListCollectionRef.getDocuments {/* ... */}

query.getDocuments {/* ... */}

关于ios - 无法过滤 Firestore 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56511003/

相关文章:

javascript - 将值推送到数组末尾添加未定义

ios - 如果滚动,swift collectionview cell didSelectItemAtIndexPath 会显示错误的单元格

c++ - App Store 是否允许带有嵌入式 dylib 的 iOS 8 应用程序?

iOS - subview Controller 具有 "Strong"对父 View Controller 的引用

ios - .scn 模型中的多个节点导致 iMessage 扩展崩溃

android - Firebase 性能监控库与作为签名 jar 分发的库不兼容

ios - 如何限制我在 iOS(swift)/Firebase 应用程序上为每个用户提供的存储空间?

android - 适用于 iOS/Android/Windows 8 的混合应用程序

ios - swift:uicollectionview 在转换期间更改单元格的 contentoffset

ios - 更新 UILabel 值作为 CAShapeLayer 动画