我有以下数据结构(事件),并希望查询特定用户(user1
)所属的所有事件。
{
"events":{
"event1":{
"users":{
"user1":true,
"user2":true
}
},
"event2":{
"users":{
"user1":true
}
}
}
}
以下查询允许我获取所有事件user1
,但不允许我创建数据库索引。
starRef.child("events").orderByChild("users/user1").start(true).end(true)
我正在寻找一种方法,允许我(充其量)查询密钥的存在。例如starRef.child("events").orderByChild("users").hasKey("user1")
答案 0 :(得分:1)
为了实现这一点,我通过在每个用户中添加一个名为events
的新节点来重新编写您的数据库结构。您的新节点应如下所示:
Firebase-root
--- users
--- user1
--- events
--- event1: true
--- event2: true
要查询与特定用户相关的所有事件,只需向"Firebase-root/users/user1/events"
添加一个侦听器,并获取该用户所属的所有事件。
希望它有所帮助。