Swift 快照和映射来自 Firestore 的单个文档
Posted
技术标签:
【中文标题】Swift 快照和映射来自 Firestore 的单个文档【英文标题】:Swift snapshot and mapping a single document from 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
谢谢
【问题讨论】:
【参考方案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)")
【讨论】:
以上是关于Swift 快照和映射来自 Firestore 的单个文档的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 Firestore 映射到 Swift 中的结构 - IOS
Swift Firestore 来自查询的自定义对象,同时使用 snapshotListener 监听实时更新
StreamBuilder 未显示来自 firestore 的数据