相等不工作的firebase

时间:2017-09-11 18:49:48

标签: firebase firebase-realtime-database

这是我的实时数据库结构

myproject
|---------event
              |--date1
                  |--adminid1
                       |-----hallID1
                               |--name:"abc"
                               |--address: "xyz"
             |--date2
                 |--adminid1
                      |-----hallID2
                              |--name:"asd"
                              |--address: "somenadd"

我正在尝试为我的json结构的name元素自动完成搜索框,每当用户在我的搜索框中输入三个以上的字符时,我调用search()函数查询firebase db,如下所示: / p>

scope.search = function(){
        firebaseDb
        .ref("event")
        .orderByChild("name")
        .startAt(scope.searchBarModel) 
        .endAt(scope.searchBarModel + "\uf8ff")     
        .on("child_added", function(snapshot){
            console(snapshot.key);
        });     
    }

但是,上面的查询无法在db中找到记录,我做错了什么?

PS:equalTo查询的情况也是如此:

scope.search = function(){
        firebaseDb
        .ref("event")
        .orderByChild("name")
        .equalTo(scope.searchBarModel) 
        .on("child_added", function(snapshot){
            console(snapshot.key);
        });     
    }

1 个答案:

答案 0 :(得分:1)

如我的评论中所述,您只需将"child_added"更改为"value"即可。这是因为"child_added"只会在新数据写入该节点时触发。由于您希望现有数据"value"是您想要使用的。您还可能希望使用.once()而不是on(),以便分离侦听器。您可以阅读更多here