子数组中的查询对象

时间:2017-09-27 13:55:49

标签: ios swift firebase swift3 firebase-realtime-database

我正在尝试使用查询从我的数据库中检索只有4岁的学生的数据,但我无法弄清楚如何使用Firebase查询年龄(每个孩子中的数组)。

{
  "student" : {
    "-Kv2RVDDsI-v6V7g_LBn" : [ {
      "name" : "sam",
      "age" : "6"
    }, {
      "name" : "tom",
      "age" : "4"
    }
   ],
   "-hguyu-v6V7g_LBn" : [ {
      "name" : "Tim",
      "age" : "12"
    }, {
      "name" : "tom",
      "age" : "4"
    }
   ]
  }
}

这是我的代码,但它不会返回任何内容。

ref.child("student").queryOrdered(byChild: "age").queryEqual(toValue: 4).observe(.childAdded,  with: { (snapshot) in
        let value = snapshot.value
        print(value)
    }) { (error) in
        print(error.localizedDescription)
}

但是,如果我删除queryOrdered(byChild:“age”),它就可以工作。

感谢。

1 个答案:

答案 0 :(得分:0)

当您的JSON数据库格式子路径名实际为“学生”时,您正在引用“学生”。

还要确保按键查询。请参阅Firebase文档以了解如何按键查询。虽然为什么每把钥匙有2个孩子,但我不明白你的结构。

为什么不给每个孩子一个新钥匙?