我在firebase中有一个带有这种结构的数据库(让我们假设firebase中的顺序在这里是相同的):
"002f6b4a378caed3be3bd00346e3d380": {
"id": "002f6b4a378caed3be3bd00346e3d380",
"name": "Thayne",
"date": 1516242371000,
"totalDuration": 297
},
"8181554c6d4da1b7bfbb74aafe683b5d": {
"id": "8181554c6d4da1b7bfbb74aafe683b5d",
"name": "Marna",
"date": 1517840087000,
"totalDuration": 283
},
"d5d17675cae2b480020e0d43b9074658": {
"id": "d5d17675cae2b480020e0d43b9074658",
"name": "Clint",
"date": 1515673469000,
"totalDuration": 184
},
"9f2cdf88d59dd778d9aaa5745d10d1e2": {
"id": "9f2cdf88d59dd778d9aaa5745d10d1e2",
"name": "Nadia",
"date": 1521918148000,
"totalDuration": 234
},
"afc21c30da7b4ef3e88234cd7988f6a7": {
"id": "afc21c30da7b4ef3e88234cd7988f6a7",
"name": "Alexi",
"date": 1519041073000,
"totalDuration": 110
}
我在每条记录上都有两个int,date
和totalDuration
,时间是一个UNIX时间戳,持续时间只是30到350之间的数字。
我想检索由这些数字中的任何一个排序的所有元素的列表。通过API和我试过的文档:
var orderRef = firebase.database().ref("elements/");
orderRef.orderByChild('totalDuration').on("value", function(data){
var result = data.val();
for ( id in result ) {
console.log( result[id].totalDuration );
}
});
我期待着这个:
110
184
234
283
297
相反,我得到了数据库中已经存在的相同顺序:
297
283
234
110
184
日期相同,它以与数据库中存在的顺序相同的顺序返回数据。
我想知道是否存在以下问题:a)我的代码,或b)我对orderByChild
实际如何运作的概念。