首页 > 解决方案 > 尝试对 firebase 数据库进行排序不起作用

问题描述

我正在尝试按日期对 firebase 日期进行排序,但它不起作用。

我有这种格式的firebase数据结构 在此处输入图像描述

我用这个函数来调用节点

 var awardsref = CatalogueDB.ref("cageawards/" + mycagecode).orderByChild('Awarddate');

    awardsref.on('value', Awardstable, errData);

这是输出

在此处输入图像描述

有没有办法根据这种日期格式对数据进行排序?

标签: javascriptfirebase

解决方案


正如@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')


推荐阅读