【问题标题】:Retrieve childs name Firebase Database Swift检索孩子的名字 Firebase 数据库 Swift
【发布时间】:2016-10-12 17:29:19
【问题描述】:

我希望检索 Firebase 数据库中某个部分的所有子项的名称。然后我想把它们放在一个数组中。

{
  "sVkyFjTI9yOTlOPFzUv5MvFozlh2" : {
    "groups" : {
      "group 1" : "9FA02017-172B-434B-A873-518854697CCC",
      "group 2" : "B52743E0-8441-40FB-98BA-51920F31EFE6",
      "group 3" : "1A320965-88A3-42FF-A917-0D93BE39B357"
    }
  }
}

我已经这样做了:

ref.child("user_profile").child(user!.uid).child("groups/").observeSingleEventOfType(.Value, withBlock: { snapshot in
        if !snapshot.exists() { return }
        let groupDict = snapshot.value! as? [string]
}) 

但我只需要数组中的子名称(这里:'group 1'、'group 2'、'group 3')而不是它们的值。感谢您的帮助。

【问题讨论】:

  • 您在问题中包含了 JSON 树的(链接到)图片。请将其替换为实际的 JSON 作为文本,您可以通过单击 Firebase 数据库控制台中的导出按钮轻松获取该文本。将 JSON 作为文本使其可搜索,让我们可以轻松地使用它来测试您的实际数据并在我们的答案中使用它,一般来说这只是一件好事。
  • 除此之外:snapshot.key! 会给你物品的钥匙。
  • 我试过了,但它不起作用!我只得到父母的名字:“groups”
  • 啊,你想要每个孩子。使用for childSnapshot in snapshot.children { print(childSnapshot.key) }循环遍历快照子节点
  • 能否请您复制我的初始函数并添加您的更正,因为我迷路了啊哈:D。感谢您的帮助。

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

我使用了这段代码,它运行良好: var ref = Firebase(url: "https://.firebaseio.com/restaurants/")

ref.child("user_profile").child(user!.uid).child("groups").observeEventType(.Value, withBlock: {
        snapshot in
        var groupNames = [String]()
        for group in snapshot.children {
            groupNames.append(group.key)
        }
        print(groupNames)
    })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    相关资源
    最近更新 更多