javascript - 尝试对 firebase 数据库进行排序不起作用
问题描述
我正在尝试按日期对 firebase 日期进行排序,但它不起作用。
我用这个函数来调用节点
var awardsref = CatalogueDB.ref("cageawards/" + mycagecode).orderByChild('Awarddate');
awardsref.on('value', Awardstable, errData);
这是输出
有没有办法根据这种日期格式对数据进行排序?
解决方案
正如@GerardoHerrera 指出的那样,Firebase 不支持按日期排序。但是,如果您解析日期并将它们转换为基于 UNIX 纪元的毫秒,您应该能够根据它按字典顺序对它们进行排序。
const date1 = new Date("04-07-2018").getTime();
date1; // 1523084400000
const date2 = new Date("06-02-2018").getTime();
date2; // 1527922800000
由于 date1 小于 date2,它将按升序排列在 date2 之前。将这些转换后的毫秒时间值存储在您的 Firebase 中,您应该能够按它们对数据集进行排序。
例如
"7MFD4" {
...
"SPE7L018P1428" {
"Awarddate": "04-07-2018",
"AwarddateMS": 1523084400000
...
}
...
}
然后做orderByChild('AwarddateMS')
。
推荐阅读
- html - Angular2如何触发(点击)事件
- jquery - 停止光标在字符串末尾移动
- javascript - 'AngularFireList<{}> 类型中缺少 Angular 属性'$ref'
- python-3.x - Python - 删除带有时间戳的日志
- java - fortity scan :Mass Assignment: 绑定到持久对象的请求参数
- bash - 在 bash 脚本中同时使用双引号和单引号来调用程序
- c# - 在 C# 中读取 SqlTransaction 的待处理记录
- json - 如何从模块中获取所有记录 - SugarCRM 版本 7+
- python-3.x - 无法从 Anaconda Python 3.6.5 中的 rdkit 导入 Chem
- php - foreach 循环仅更新表中的最后一个值三次