好的,我正在从 Firebase 数据库接收快照,这是我的代码以及我正在接收的内容:
rootRef.child("Battles").queryOrderedByChild("Player1").queryEqualToValue(CurrentFBID).observeSingleEventOfType(.Value, withBlock: { snap in
if (snap.value is NSNull) {
print("none")
} else {
print(snap.value)
}
})
接收:
{
"04361D33-AC99-4795-BB9A-0B0879882251" =
{
BattleUUID = "04361D33-AC99-4795-BB9A-0B0879882251";
Player1 = 10210238266903604;
Player2 = 12121212121212;
Score = "0-0";
Turn = 1;
};
}
我的 JSON 树:
{
"Battles" : {
"04361D33-AC99-4795-BB9A-0B0879882251" : {
"BattleUUID" : "04361D33-AC99-4795-BB9A-0B0879882251",
"Player1" : "10210238266903604",
"Player2" : "12121212121212",
"Score" : "0-0",
"Turn" : "1"
},
"07261D43-GC59-4795-BB9A-0B0871635751" : {
"BattleUUID" : "04361D33-AC99-4795-BB9A-0B0879882251",
"Player1" : "1342536342535",
"Player2" : "1524343564",
"Score" : "3-1",
"Turn" : "5"
}
}
}
如何拆分该数据,例如:
let player1 = snap.Player1.value
let player2 = snap.Player2.value
let battleUUID = snap.BattleUUID.value
let score = snap.Score.value
let turn = snap.Turn.value
最佳答案
您将立即收到所有数据。 snap
包含 children
,每个 child
都属于特定的战斗。
要获取与每个子项相对应的数据,您必须对 snap
的 children
进行迭代,如下所示:
for item in snap.children {
let player1 = item.value?["Player1"] as! String
let player2 = item.value?["Player2"] as! String
let battleUUID = item.value?["BattleUUID"] as! String
let score = item.value?["Score"] as! String
let turn = item.value?["Turn"] as! String
}
关于json - swift 。如何从Firebase数据库的快照中获取特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794202/