首页 > 解决方案 > 在 SwiftUI 中嵌入可编码对象和 Firestore 的问题

问题描述

我有以下

class OrderBasket: Identifiable, Codable {
  @DocumentID  var id: String!
  var credits: Int! = 200
  var basketTotal: Int
  var orderLines: [OrderLine] = []
       
  enum CodingKeys: String, CodingKey {
    case id
    case credits
    case basketTotal
    case orderLines
  }
}

class OrderLine: Identifiable, Equatable, Codable {
  @DocumentID var id: String! = UUID ().uuidString
  var sku : String!
  var quantity : Int
  var lineTotal: Int
    
  enum CodingKeys: String, CodingKey {
    case id
    case sku
    case quantity
    case lineTotal
  }
}

我能够成功地从 Firestore 读取数据。但是,如何提取orderLines

以下代码可用于读取OrderBasket. 我如何获得orderLines

db.collection("Basket").document(Auth.auth().currentUser!.uid).addSnapshotListener { (querySnapshot, error) in
  guard let basket = querySnapshot?.data() else {
    print("No documents for basket")
    return
  }
  
  self.orderBasket.credits = (basket["credits"] as! Int)
  self.orderBasket.basketTotal = basket["basketTotal"] as! Int
}

basket["orderLines"]包含数据,但如何将其传递给对象?

我正在使用FirebaseFirestoreSwift顺便说一句。

标签: swiftgoogle-cloud-firestore

解决方案


推荐阅读