2017-04-17 14 views
0

私はFirebase DBを作成しましたが、データをDBに保存するためにPush()メソッドを使用しています。これは正常に動作します。しかし、私が直面しているこの問題は、データを取り出すときです。 Push()は一時的なキーを作成することによって動作するので、orderByValue()を使用してソートを実行するには、そのツリーの子にステップインする方法がわかりません。私のJSONは、次のようになります。Firebaseから取得

{ 
    "videos" : { 
    "videoId1" : { 
     "-KhxlA5-yIHYq-7PQC84" : "{\"url\":\"testUrl1\",\"title\":\"test1\",\"x\":-3.9357306957244875,\"y\":6.528204441070557,\"z\":2.5558924674987795,\"time\":7982.197021484375}", 
     "-KhxlAEpJp30xF5n6kc5" : "{\"url\":\"testUrl2\",\"title\":\"test2\",\"x\":4.0330400466918949,\"y\":6.52820348739624,\"z\":2.3994064331054689,\"time\":2637.8599853515625}", 
     "-KhxlAPyaGEI7AxFssG_" : "{\"url\":\"testUrl3\",\"title\":\"test3\",\"x\":-3.446043014526367,\"y\":6.52820348739624,\"z\":-3.1854910850524904,\"time\":5350.770263671875}" 
    } 
    } 
} 

私の要件は、データを取得しながら、私はtimeキーに基づいて、それをソートする必要があるということです。

私はvideoId1の木まで届くことができますが、それをどのようにして得るのか分かりません。 (reference.Child ("videos").Child (videoUrl)を使用)

ありがとうございます。

+0

'var ref = reference.child( 'videos/videoId1')を試しましたか?orderByChild( 'time')'? –

答えて

1

子の文字列値をvideoId1に格納しています。その文字列の中で便利に問い合わせる方法はありません。

あなたは子どもたちの下で照会したい場合は、合計ツリーがなるように、JSONなどのデータを保存するようにしてください:

{ 
    "videos": { 
    "videoId1": { 
     "-KhxlA5-yIHYq-7PQC84": { 
      "url": "testUrl1", 
      "title": "test1", 
      "x": -3.9357306957244875, 
      "y": 6.528204441070557, 
      "z": 2.5558924674987795, 
      "time": 7982.197021484375 
     } 
     ", 
     "-KhxlAEpJp30xF5n6kc5": { 
      "url": "testUrl2", 
      "title": "test2", 
      "x": 4.0330400466918949, 
      "y": 6.52820348739624, 
      "z": 2.3994064331054689, 
      "time": 2637.8599853515625 
     } 
     ", 
     "-KhxlAPyaGEI7AxFssG_": { 
      "url": "testUrl3", 
      "title": "test3", 
      "x": -3.446043014526367, 
      "y": 6.52820348739624, 
      "z": -3.1854910850524904, 
      "time": 5350.770263671875 
     } 
    } 
    } 
} 

をあなたはキリルとして照会することができるものでは提案:

ref.child('videos/videoId1').orderByChild('time')... 
関連する問題