【发布时间】:2019-12-16 20:18:12
【问题描述】:
我一直在兜圈子,试图弄清楚如何将 firebase 文档映射到 swift 结构。我让它工作得很好,除了我现在在我的 firebase 数据库中添加了一个数组并且尝试将它映射到我的结构时运气为零。
这是我的结构:
import Foundation
import Firebase
struct subData {
var userID: String
var topScore: Int
var extended: Contents
init(Doc: DocumentSnapshot) {
self.userID = Doc.get("userID") as? String ?? "nil"
self.topScore = Doc.get("topScore") as? Int ?? 0
self.extended = Contents(data: Doc.get("extendedArray") as! [String: Any])!
}
}
struct Contents {
var ID00: Int
var ID01: Int
var ID02: Int
var ID03: Int
init?(data: [String: Any]) {
guard let ID00 = data["ID00"] as? Int,
let ID01 = data["ID01"] as? Int,
let ID02 = data["ID02"] as? Int,
let ID03 = data["ID03"] as? Int else {
return nil
}
self.ID00 = ID00
self.ID01 = ID01
self.ID02 = ID02
self.ID03 = ID03
}
}
这是我的 Firestore 数据库结构:
我收到以下错误:
Could not cast value of type '__NSArrayM' (0x1ccc3b660) to 'NSDictionary' (0x1ccc3c628).
我知道,我知道......错误信息很清楚我做错了什么 - 但我已经转了很多次我希望有人能指出我正确的方向.. ..
谢谢。
【问题讨论】:
-
如果你知道你添加了一个 array 为什么你要把对象转换成 dictionary?错误信息确实很清楚。
标签: swift struct google-cloud-firestore nsarray