火庫模型
我在 Firestore 中有以下資料結構。我很難將它映射到我的 ios 應用程式。我正在使用斯威夫特。任何人都可以提供可編碼的結構或其他東西嗎?
struct CartModel: Codable {
let cart: [CartItemModel]
enum CodingKeys: String, CodingKey {
case cart
}
}
extension CartModel{
static var dummyCartData : CartModel {
.init(cart: [CartItemModel.dummyCartData])
}
}
struct CartItemModel: Codable {
let brand: String
let itemDescription: String
let image: String
let selection: [UserSelection]
let title:String
enum CodingKeys: String, CodingKey {
case brand
case itemDescription = "description"
case image
case selection
case title
}
}
extension CartItemModel{
static var dummyCartData : CartItemModel {
.init(brand: "gucci",
itemDescription: "adidas",
image: "yeezy",
selection: [UserSelection.dummyData],
title: "123")
}
}
struct UserSelection: Codable, Equatable{
var size :String
var count : Int
enum CodingKeys: String, CodingKey {
case size = "size"
case count
}
}
extension UserSelection{
static var dummyData : UserSelection {
.init(size: "XS11", count: 20)
}
}
docRef.getDocument { (snapshot, error) in
if error != nil {
return
}
if let snapshot = snapshot, snapshot.exists {
print(snapshot.data())
let products = try! snapshot.data(as: CartModel.self)
print(products)
}
}
Firestore 退貨
Optional(["cart": <__NSArrayM 0x600002979380>(
{
brand = Nike;
description = "Find the Jordan Point Lane at . ";
image = "https://static.nike.com/a/images/t_default/f105dd55-53d0-4a50-b43a-55bd9231c658/jordan-point-lane-mens-shoes-PPMHdC.png";
selection = {
count = 1;
size = "";
};
title = "Jordan Point Lane Men's Shoes";
}
)
])
致命錯誤:“試試!” 運算式意外引發錯誤:Swift.DecodingError.typeMismatch(Swift.Array, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "cart", intValue: nil),
_FirestoreKey(stringValue: "Index 0", intValue: 0), CodingKeys(stringValue: "selection", intValue: nil)], debugDescription: "Not an array", underlyingError: nil))
致命錯誤:“試試!” 運算式意外引發錯誤:Swift.DecodingError.typeMismatch(Swift.Array, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "cart", intValue: nil), _FirestoreKey(stringValue: "Index 0", intValue: 0 ), CodingKeys(stringValue: "selection", intValue: nil)], debugDescription: "Not an array", underlyingError: nil))
uj5u.com熱心網友回復:
正如錯誤所說,selection不是 Firestore 檔案中的陣列,但您已將其定義為模型中的一個。
更改let selection: [UserSelection]為let selection: UserSelection
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/410742.html
標籤:
下一篇:UITextfield陰影
