如何对firebase自动生成的密钥进行排序?

Posted

技术标签:

【中文标题】如何对firebase自动生成的密钥进行排序?【英文标题】:how to sort firebase auto generated key? 【发布时间】:2018-03-14 11:01:34 【问题描述】:

我正在使用 firebase 实时数据库。每次我使用 push 方法将数据推送到 firebase 时,它​​都会自动生成一个像这样的密钥 据我所知,“-L1GgaMStpwEV4N3sQad”也是基于时间生成的。

所以我的问题是有什么方法可以对键 asce 或 desc 进行排序?

我附上了 firebase 自动生成的图片。

提前致谢。

【问题讨论】:

如果你习惯了 SQL,这有点反直觉,但你通常只是在 javascript 中反转结果。 怎么做?我是新手。 它们已经按时间戳的升序保存了为什么不使用javascript代码来反转顺序。 @Daffodil Firebase 推送 ID 被定义为它们的字典顺序也是它们生成的时间顺序。如果您想反转它们,您将在自己的代码中执行此客户端。执行此操作的精确程度取决于您已经加载数据的方式。如果没有看到您已经完成的工作(称为MCVE),我们将无法提供帮助。 我建议不要为此使用密钥。创建推送 ID 作为键,并在每个子节点下创建两个存储数字时间戳的子节点。一个节点是时间戳,另一个节点是 1-timestamp。然后它们可以根据这些时间戳升序或降序加载,并且不与密钥绑定。另一个好处是它们是实际的时间戳,如果您需要该功能。或者,@frankvanpuffelen 提到,您始终可以对代码进行排序。 Sort Descending 【参考方案1】:

我是 firebase 新手,但这是我的观察: 生成的唯一键已经按字典顺序排序。 仔细查看您的对象: -L1GgaM 对所有键都是通用的(除了最后一个以“N”结尾的键)

另外,请记住大写字母的 ASCII 值低于对应的值。

【讨论】:

以上是关于如何对firebase自动生成的密钥进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在firebase自动生成的密钥下编辑子值

按用户位置与 Firebase 附近的距离对数组进行排序

可以将服务器端逻辑添加到 firebase 以实现自动增量密钥吗?

限制 Firebase API 密钥

如何抓取多条路径并对它们进行排序并将结果带回firebase?

从firebase android中删除自动关键节点