2017-09-11 5 views
0

を動作していないユーザーは、私の検索ボックスに3文字以上を入力するたびに、私は私が呼んで、私のJSON構造のname要素のオートコンプリートの検索ボックスにしようとしています私のリアルタイムDB構造はequalToここfirebase

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

です次のようにfirebaseデシベルを照会し、検索()関数:

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

"child_added"を値に変更してください。子供は誰かがデータベースのそのエリアに書き込むときに火事だけを加えました。 – DoesData

答えて

1

私のコメントで述べたように、あなただけの"value""child_added"を変更する必要があります。これは、"child_added"は新しいデータがそのノードに書き込まれたときにのみ起動するためです。あなたが既存のデータ"value"を使いたいと思っているからです。リスナーが切り離されるように、on()の代わりに.once()を使用することもできます。あなたはもっと読むことができますhere

関連する問題