这是我的实时数据库结构
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);
});
}
答案 0 :(得分:1)
如我的评论中所述,您只需将"child_added"
更改为"value"
即可。这是因为"child_added"
只会在新数据写入该节点时触发。由于您希望现有数据"value"
是您想要使用的。您还可能希望使用.once()
而不是on()
,以便分离侦听器。您可以阅读更多here