2016-08-28 23 views
3

firebaseデータベース内の1つのオブジェクトをどのようにターゲットに設定するかがわかりません。たとえば、インデックスカードをクリックすると、特定の単語/定義が表示されます。私は、データを格納するためにこれを使用しています:firebaseデータベースで単一の値をターゲットに設定するにはどうすればよいですか?

wordVal = $("#word").val(); 
defVal = $("#def").val(); 

data = firebase.database().ref("indexCards"); 
data.push({ 'word': wordVal, 'definition': defVal });   

と、これを、それを取得するには:

data.on("child_added", function(snapshot){ 
    console.log(snapshot.val().word); 
    console.log(snapshot.val().definition); 
}); 

これは私の言葉や定義のリスト全体を与えます。特定の言葉と特定の定義を別々に参照したいと思います。ドキュメントでは、これを行うことによって特定の値を参照できると言います - firebase.database().ref("child/path")

しかし、私の質問は...親がそれらの乱数と文字である場合、どのようにパスを参照できますか(下記参照)?私はこれらがfirebaseによって生成された一意のIDであることを知っていますが、私は普通のオブジェクトにアクセスするようにそれらにアクセスする方法を知らない。

{ 
    "-KQIOHLNsruyrrnAhqis" : { 
    "definition" : "person, place, thing", 
    "word" : "noun" 
    }, 
    "-KQIOO7Wtp2d5v2VorqL" : { 
    "definition" : "device for photos", 
    "word" : "camera" 
    }, 
    "-KQISp4WMnjABxQayToD" : { 
    "definition" : "circus act", 
    "word" : "clown" 
    }, 
    "-KQITC9W1lapBkMyiL7n" : { 
    "definition" : "device used for cutting", 
    "word" : "scissors" 
    } 
} 

A photo of my Firebase database

+0

質問にはJSONツリーの図が含まれています。 Firebaseデータベースコンソールの[エクスポート]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

+0

@FrankvanPuffelen問題はありません。JSONテキストを追加しました。 –

答えて

0

あなたはこのようなクエリを使用することができます

data = firebase.database().ref('indexCards').orderByChild('word').equalTo('noun') 

それは自明であるが、我々はindexCardsへの参照を取得し、キー単語の値が等しい名詞 、キーを持つオブジェクトを返します-KQHZ3xCHTQjuTvonSwj

へのリンクFirebase docs: Retrieve data - Sorting and Filtering data

関連する問題