【问题标题】:How to get childAutoID in Firebase? [closed]如何在 Firebase 中获取 childAutoID? [关闭]
【发布时间】:2020-07-25 21:18:10
【问题描述】:

这就是我的数据库的设置方式

  "Meters" : {
    "00090850378" : {
      "-MD6DxNdQVL-nJw_w-K_" : {
        "Date" : "25-07-2020",
        "Meter Reading" : "298",
        "Time" : "20:28"
      },
      "-MD6Ll4LrKgY6h8BEMNf" : {
        "Date" : "25-07-2020",
        "Meter Reading" : "84126",
        "Time" : "21:02"
      },
      "-MD6NwofplQej4s13faW" : {
        "Date" : "25-07-2020",
        "Meter Reading" : "6524",
        "Time" : "21:12"
      }
    },
    "878251458532" : {
      "-MD6O5sTQdoPz3clrrpL" : {
        "Date" : "25-07-2020",
        "Meter Reading" : "848555",
        "Time" : "21:12"
      },
      "-MD6OCq7QZm1Hn7AOvlv" : {
        "Date" : "25-07-2020",
        "Meter Reading" : "848555",
        "Time" : "21:13"
      }
    }
  }

“Meters”包含一个仪表编号列表,其中每个读数由 AutoID 命名,子项是读数、时间和日期。我想要做的是每米制作一组仪表读数。我遇到的问题是如何获取 AutoID 列表以访问每个孩子?

【问题讨论】:

  • 您使用的是 Firestore 还是实时数据库?
  • 我正在使用实时 dB @sands

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

如果您不知道快照的子节点的名称,您可以遍历其children 属性。

如果您确实知道子属性的名称,则可以使用childSnapshot(forPath:) 访问它,并使用.value 访问它的值。

结合这两个知识导致这段代码读取、遍历和打印你的数据结构:

var ref: DatabaseReference!

ref = Database.database().reference()
ref.observeSingleEvent(of: .value, with: { (snapshot) in
  for meterSnapshot in snapshot.children.allObjects as! [DataSnapshot] {
    print(meterSnapshot.key) // prints "00090850378", "878251458532"
    for readingSnapshot in meterSnapshot.children.allObjects as! [DataSnapshot] {
      print(readingSnapshot.key) // prints "-MD6DxNdQVL-nJw_w-K_", "-MD6Ll4LrKgY6h8BEMNf", etc
      print(readingSnapshot.childSnapshot(forPath:"Meter Reading").value) // "298", "84126", etc
    }
  }
})

【讨论】:

    猜你喜欢
    • 2019-08-12
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 2019-03-11
    • 1970-01-01
    相关资源
    最近更新 更多