【发布时间】:2017-02-06 23:49:02
【问题描述】:
这是我在数据库中的数据结构
"2017" : {
"metadata" : {
"February" : {
"-Kc3BF0V1iLgtnI65LuR" : {
"date" : "2017-02-04T13:36:38.311Z",
"price" : 80
},
"-Kc3BF0V1xxfrtnI65OlS" : {
"date" : "2017-02-11T13:36:38.311Z",
"price" : 70
},
"-Kc3BF0V1xxfrtnIOZozp" : {
"date" : "2017-02-03T13:36:38.311Z",
"price" : 90
}
},
"January" : {
"-Kc3E5bpxpo3RpSHH3fn" : {
"date" : "2017-01-01T13:50:12.264Z",
"price" : 45
},
...
}
}
}
我在我的 ionic 应用程序的列表中显示这些数据,就像这样
February
+ 2017-02-04
+ 2017-02-11
+ 2017-02-03
January
+ 2017-01-01
现在我想对月份下的数据进行排序,所以二月份下的数据会变成
February
+ 2017-02-03
+ 2017-02-04
+ 2017-02-11
我 read in the firebase blog 已经添加了一项功能,您可以通过深度路径对查询进行排序 但是当你有一个动态键时,我找不到如何查询它,在我的例子中,月份是动态键。因为每个月的孩子都需要按日期排序。
我正在使用这个 sn-p 从 firebase 检索数据
var dbRef = firebase.database().ref(year + '/metadata/').orderByChild('date'); //How to order by date if my month is variable?
return firebaseObject(dbRef);
我还尝试使用 orderBy 过滤器按角度排序,但这不起作用,因为它需要是一个数组。我找到了blog,他们将其转换为数组,但您将丢失密钥,我仍然需要它,因为该列表是可点击的,因此我可以前往它的详细信息页面。另外我不认为在前端进行排序是一个好主意。
【问题讨论】:
标签: angularjs sorting firebase firebase-realtime-database