Swift 从autoID节点中检索值

Swift 从autoID节点中检索值,swift,firebase,Swift,Firebase,我想从autoID节点中获取值。以下是我的结构: "workout" "exercise" "Bench Press" "(AutoIDNode)" "reps: 10" "set: 1" "weight: 60" 如何获取“reps”、“set”和“weight”的值 这是我的swift代码: refSets.child("workout").child("exercise").child("Bench Press").

我想从autoID节点中获取值。以下是我的结构:

"workout"
  "exercise"
    "Bench Press"
      "(AutoIDNode)"
        "reps: 10"
        "set: 1"
        "weight: 60"
如何获取“reps”、“set”和“weight”的值

这是我的swift代码:

refSets.child("workout").child("exercise").child("Bench Press").observe(DataEventType.value, with: {(snapshot) in
        if snapshot.childrenCount > 0 {
            self.setsData.removeAll()

            for sets in snapshot.children {
                let snap = sets as! DataSnapshot
                let key = snap.key
                let value = snap.value
                print(key)
                print(value!)
            }     
        }
    })
我知道我在.child(“台式压力机”)之后缺少autoID节点的.child()路径。如何访问此节点

提前感谢

您可以试试

refSets.child("workout").child("exercise").child("Bench Press").observeSingleEvent(of: .value, with: {(snapshot) in

    if let res = snapshot.value as? [String:[String:Int]] {

        for item in Array(res.values) {

            print(item["reps"])
        }

    }

})
你可以试试

refSets.child("workout").child("exercise").child("Bench Press").observeSingleEvent(of: .value, with: {(snapshot) in

    if let res = snapshot.value as? [String:[String:Int]] {

        for item in Array(res.values) {

            print(item["reps"])
        }

    }

})
那怎么办

refSets
  .child("workout")
  .child("exercise")
  .child("Bench Press").observe(.value, with: {(snapshot) in
    guard let values = snapshot.value as [String: Any] else {
      return
    }

    for (key, value) in values {
      guard let objDict = value as? [String: Any], 
        let reps = objDict["reps"] as? Double /*not sure maybe Int*/,
        let set = objDict["set"] as? Double,
        let weight = objDict["weight"] as? Double else {
        continue 
      }
      let bp = BenchPress(reps: reps, set: set, weight: weight)

    }
  })

struct BenchPress {

  private let reps: Double
  private let set: Double
  private let weight: Double

  init(reps: Double, set: Double, weight: Double) {

    self.reps = reps
    self.set = set
    self.weight = weight
  }
}
那怎么办

refSets
  .child("workout")
  .child("exercise")
  .child("Bench Press").observe(.value, with: {(snapshot) in
    guard let values = snapshot.value as [String: Any] else {
      return
    }

    for (key, value) in values {
      guard let objDict = value as? [String: Any], 
        let reps = objDict["reps"] as? Double /*not sure maybe Int*/,
        let set = objDict["set"] as? Double,
        let weight = objDict["weight"] as? Double else {
        continue 
      }
      let bp = BenchPress(reps: reps, set: set, weight: weight)

    }
  })

struct BenchPress {

  private let reps: Double
  private let set: Double
  private let weight: Double

  init(reps: Double, set: Double, weight: Double) {

    self.reps = reps
    self.set = set
    self.weight = weight
  }
}