以下是我的firebase和代码,我想检索所有在User中具有User John键的活动。
let ref = FIRDatabase.database().reference().child("activities/")
ref.queryOrderedByChild("User").queryEqualToValue("John").observeSingleEventOfType(.Value,
withBlock:{
(snapshot) in
for record in snapshot.children
{
}
})
这是行不通的,因为在您的查询中,User == "John"
当User的真实值是这样的Object时,您试图进行所有具有属性的活动:
{
"John": {
"age": 21
}
}
要解决此问题,您应该更改数据结构,创建一个节点,您可以在其中保存所有用户,并users/userID/activities
仅保留活动ID。例如,这将是一种更好的数据结构方式:
{
"activities": {
"cycling": {
"users": {
"user1": true,
"user2": true
}
},
"running": {
"users": {
"user1": true
}
}
},
"users": {
"user1": {
"name": "John",
"age": 21,
"activities": {
"cycling": true,
"running": true,
}
},
"user2": {
"name": "Tim",
"age": 20,
"activities": {
"cycling": true
}
}
}
}
然后,您可以使用“让我知道是否有帮助;”
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句