Firebase查询是否存在密钥

时间:2017-09-12 14:45:39

标签: android firebase firebase-realtime-database

我有以下数据结构(事件),并希望查询特定用户(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")

1 个答案:

答案 0 :(得分:1)

为了实现这一点,我通过在每个用户中添加一个名为events的新节点来重新编写您的数据库结构。您的新节点应如下所示:

Firebase-root
   --- users
     --- user1
       --- events
         --- event1: true
         --- event2: true

要查询与特定用户相关的所有事件,只需向"Firebase-root/users/user1/events"添加一个侦听器,并获取该用户所属的所有事件。

希望它有所帮助。