json - swift 。如何从Firebase数据库的快照中获取特定数据

标签 json swift firebase firebase-realtime-database snapshot

好的,我正在从 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 都属于特定的战斗。 要获取与每个子项相对应的数据,您必须对 snapchildren 进行迭代,如下所示:

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/

相关文章:

javascript - Firebase 函数 - admin.messaging().sendToTopic 执行但从未到达 `then` block

ios - FireBase - 维护/保证数据一致性

php - 简单的 JSON php 请求 iPhone

c# - 我的 workspace setting.json for unity on VSCode 表示 'end of file' 预期在 files.exclude 之后

arrays - 从异步调用修改数组不会快速修改数组

iOS 为什么以编程方式创建的 UIButton 缺少过渡动画

android - 使用 Google 身份验证更改生产应用程序的 Firebase 项目?

json - 如何修复失败的 VMSS 部署并出现错误 "unknown network allocation error"

javascript - 在重新启动计时器之前显示 Div 一段时间

json - Swift3:Openweather API 返回 nil 和 API 错误