【发布时间】:2019-12-19 17:38:27
【问题描述】:
我正在尝试从 Firestore 数据库中获取数据,数据结构是,
{
"teamImage" : "ABC",
"teamName" : "XYZ",
"players" : [
"playerImage" : ["mnb","sadja"],
"playerName" : ["aska","asdaj"]
]
}
我试图检索的代码是,
func readArray()
{
let dbRef = Firestore.firestore()
dbRef.collection("Team").getDocuments { (snapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
print(snapshot!.documents)
for document in snapshot!.documents {
let docId = document.documentID
let teamName = document.get("teamName") as! String
let teamImage = document.get("teamImage") as! String
let players = document.get("players") as! Dictionary<String, Any>
print(players)
for items in players
{
let playerName = document.get("playersName") as? [Any]
print(playerName)
}
print(players)
print(docId, teamName, teamImage)
}
}
}
}
团队名称、团队形象和球员检索正常,但是当我尝试从球员数组中获取数据时,它会崩溃,球员在检索时看起来像这样,
["playerImage": <__NSArrayM 0x6000024eaa90>(
https://firebasestorage.googleapis.com/v0/b/basket-ball-tracking.appspot.com/o/%3CUIImage:%200x600002bc8bd0%3E%20size%20%7B4288,%202848%7D%20orientation%200%20scale%201.000000.jpg?alt=media&token=d18dfc89-1a21-45c9-b8f0-7f076cd15bc1, https://firebasestorage.googleapis.com/v0/b/basket-ball-tracking.appspot.com/o/%3CUIImage:%200x600002bc7950%3E%20size%20%7B3000,%202002%7D%20orientation%200%20scale%201.000000.jpg?alt=media&token=58faddd8-b343-4ec9-a09b-740678ccc80b ) , "玩家名": <__nsarraym>( 阿里, 哈姆扎 ) ]
【问题讨论】:
-
请编辑问题以非常清楚文档中每个字段的数据类型。该文档的屏幕截图可能会有所帮助。似乎您实际上可能有真正想要地图的数组。文档浏览器应该清楚您正在处理的数据类型。
-
"it get crash" 请在控制台中显示错误信息。哪条线导致了崩溃?
let playerName = document.get("playersName") as? [Any]?也许是因为它不是来自document,而是来自items?
标签: swift google-cloud-firestore