从Firebase中检索

时间:2017-04-17 21:20:15

标签: c# firebase unity3d firebase-realtime-database

我创建了一个Firebase数据库,我正在使用Push()方法将数据保存到数据库中。这很好用。但我面临的这个问题是我检索数据的时候。由于Push()通过创建临时键来工作,我不知道如何使用orderByValue()进入该树的子节点以执行排序。我的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}"
    }
  }
}

我的要求是我需要在检索数据时根据time键对其进行排序。

我可以到达videoId1树,但不知道如何过去。 (使用reference.Child ("videos").Child (videoUrl)

感谢。

1 个答案:

答案 0 :(得分: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
        }
    }
  }
}

有了这个,您可以像Kirill建议的那样进行查询:

ref.child('videos/videoId1').orderByChild('time')...