2017-04-17 61 views
0

我創建了Firebase數據庫,並使用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')...