下面是我的firebase和代码,我想检索User中有User键的所有活动。
let ref = FIRDatabase.database().reference().child("activities/")
ref.queryOrderedByChild("User").queryEqualToValue("John").observeSingleEventOfType(.Value,
withBlock:{
(snapshot) in
for record in snapshot.children
{
}
})
答案 0 :(得分:0)
这不起作用,因为在您的查询中,当User的实际值是这样的对象时,您尝试执行具有属性User == "John"
的所有活动:
{
"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
}
}
}
}
然后你可以使用 如果这有帮助,请告诉我;)