equalTo不工作firebase
这是我的实时数据库结构equalTo不工作firebase,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,这是我的实时数据库结构 myproject |---------event |--date1 |--adminid1 |-----hallID1 |--name:"abc" |--address: "xyz" |--date2
myproject
|---------event
|--date1
|--adminid1
|-----hallID1
|--name:"abc"
|--address: "xyz"
|--date2
|--adminid1
|-----hallID2
|--name:"asd"
|--address: "somenadd"
我正在尝试为我的json结构的name
元素自动完成搜索框,每当用户在搜索框中输入三个以上的字符时,我调用search()函数查询firebase db,如下所示:
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);
});
}
如我在评论中所述,您只需将
“child\u added”
更改为“value”
。这是因为“child\u added”
仅在向该节点写入新数据时才会触发。因为您需要现有数据,所以“值”就是您想要使用的。您可能还希望使用.once()
而不是on()
,以便分离侦听器。您可以阅读更多内容将“child_added”更改为value。添加的子项仅在有人写入数据库的该区域时激发。