【问题标题】:Firebase how to sort collection via createdAt field? [duplicate]Firebase 如何通过 createdAt 字段对集合进行排序? [复制]
【发布时间】:2017-03-07 00:30:18
【问题描述】:

我有一个看起来像这样的集合模型:

如何通过createdAt 字段将查询从最新到最旧排序。

到目前为止我尝试过

db.ref('accounts')
    .startAt()
    .orderByChild('createdAt')
    .once('value')
    .then(function(snap){
        // do shits here...
    })

但是我得到的数据是最旧的。

  1. 一月
  2. 二月
  3. 三月

但我想要

  1. 三月
  2. 二月
  3. 一月

【问题讨论】:

标签: javascript firebase firebase-realtime-database


【解决方案1】:
  1. 没有方法可以在 firebase 数据库中获取按降序排列的项目。所以你需要用你的编程语言对数组进行升序和逆序排序。

  2. 如果您想按时间对它们进行排序,您应该使用时间戳而不是日期时间作为字符串。在这种情况下,您会得到错误的排序,因为它们实际上是作为字符串进行比较的。例如:想象这两个日期2016-10-14T02:30:59.653Z2016-10-2T02:30:59.653Z。作为日期,第一个更大,但作为字符串(按字典顺序),第二个更大。

【讨论】:

  • !!!!欢迎!!!
  • @Zura:时间好像是 ISO-8601 格式,需要前导零,特别是为了确保字符串可以按字典顺序排列。
  • 你好,我知道有很多时间,但是,这对我来说工作正常吗?
猜你喜欢
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-10
相关资源
最近更新 更多