Firebase 如何通过 createdAt 字段对集合进行排序? [复制]
Posted
技术标签:
【中文标题】Firebase 如何通过 createdAt 字段对集合进行排序? [复制]【英文标题】:Firebase how to sort collection via createdAt field? [duplicate] 【发布时间】:2017-03-07 00:30:18 【问题描述】:我有一个看起来像这样的集合模型:
如何通过createdAt
字段将查询从最新到最旧排序。
到目前为止我尝试过
db.ref('accounts')
.startAt()
.orderByChild('createdAt')
.once('value')
.then(function(snap)
// do shits here...
)
但是我得到的数据是最旧的。
-
一月
二月
三月
但我想要
-
三月
二月
一月
【问题讨论】:
您可以在获取后反转您的列表,但最好从firebase ***.com/a/3963075/3496570 或***.com/a/10766502/3496570 进行反转 这些是 java 解决方案,无论如何谢谢你的想法 :) @Nepster 尝试 limitToLast 像 ***.com/a/33484784/3496570 或 ***.com/a/38024909/3496570 【参考方案1】:没有方法可以在 firebase 数据库中获取按降序排列的项目。所以你需要用你的编程语言对数组进行升序和逆序排序。
如果您想按时间对它们进行排序,您应该使用时间戳而不是日期时间作为字符串。在这种情况下,您会得到错误的排序,因为它们实际上是作为字符串进行比较的。例如:想象这两个日期2016-10-14T02:30:59.653Z
、2016-10-2T02:30:59.653Z
。作为日期,第一个更大,但作为字符串(按字典顺序),第二个更大。
【讨论】:
!!!!欢迎!!! @Zura:时间好像是 ISO-8601 格式,需要前导零,特别是为了确保字符串可以按字典顺序排列。 你好,我知道有很多时间,但是,这对我来说工作正常吗?以上是关于Firebase 如何通过 createdAt 字段对集合进行排序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何为此 Firebase 响应 JSON 构建 Typescript 接口?
iOS:如何从 Firebase 检索创建于/更新的时间戳?
Loopback-4 通过模型添加时间戳 createdAt 和 updatedAt
如何使用 mongoose 在 mongoDB 中手动设置 createdAt 时间戳?