Firebase如何在用户数据下动态搜索推送键

时间:2016-11-22 15:37:10

标签: javascript firebase firebase-realtime-database

{
    "foo":{
        "uid":{ // user's uid
            "push_key_1":{
               "bar":"baz"
            },
            "push_key_2":{
               "bar":"baz"
            }
        }
    }
}

鉴于上面的代码模型,如何动态搜索查询中的push_key_1push_key_2

我试过:

var searKey = 'push_key_1';

db.ref('foo').orderByKey().equalTo(searKey).once('value')
    .then(function(snap){
        // snap.val() returns null.
    }).catch();

snap.val()null。结果orderByKey()仅用于排序目的。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

它比你尝试的要简单得多。当您知道要加载的节点的密钥时,根本不需要查询:

db.ref('foo').child(searKey).once('value'....

答案 1 :(得分:0)

我认为除非你重组数据库,否则这是不可能的。我的方法是添加另一个节点来存储推送键。

"users_push_keys": {
    "push_key_1": "uid_1",
    "push_key_2": "uid_1"
}

通过这种方式,您可以通过从此节点检索数据来获取uid。 希望这会有所帮助:)