【问题标题】:Swift snapshot and mapping a single document from FirestoreSwift 快照和映射来自 Firestore 的单个文档
【发布时间】:2021-12-30 08:47:37
【问题描述】:

我试图找到一种仅检索单个文档而不是从 Firestore 中检索文档数组的方法,但没有成功。下面是我用于获取广告数组的代码。有人对如何更改仅获取文档有建议吗?

@Published var plantData: [PlantDataModel] = [] -> here I don't want an array

func loadData() {
        print("FIREBASE LOADING DETAIL DATA VIEW")
        db.collection("plantsData").whereField("plantId", isEqualTo: plant.idPlant).addSnapshotListener { querySnapshot, error in
            if let querySnapshot = querySnapshot {
                self.plantData = querySnapshot.documents.compactMap { document  in
                    do {
                        let x = try document.data(as: PlantDataModel.self)
                        return x
                    } catch let error {
                        print("Errore fetching data: \(error)")
                    }
                    return nil
                }

            }
        }
    }

谢谢

【问题讨论】:

    标签: ios swift firebase google-cloud-firestore swiftui


    【解决方案1】:

    替换

                self.plantData = querySnapshot.documents.compactMap { document  in
                    do {
                        let x = try document.data(as: PlantDataModel.self)
                        return x
                    } catch let error {
                        print("Errore fetching data: \(error)")
                    }
                    return nil
                }
    

                if let first = querySnapshot.documents.first { 
                    do {
                        let x = try first.data(as: PlantDataModel.self)
                        self.plantData.append(x)
                    } catch let error {
                        print("Errore fetching data: \(error)")
                    } 
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-03
      • 2021-09-02
      • 2021-09-27
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多