如何使用Javascript按时间顺序订购Firebase ID

时间:2017-01-13 14:30:16

标签: javascript firebase firebase-authentication

我想知道Javascript中是否有一个简单的方法可以按照时间顺序排列两个Firebase用户ID?据我了解,Firebase ID的前半部分由字母和数字(表示创建ID的时间)的混合组成,后半部分是随机字母和数字字符串(应该是确保即使两个在同一毫秒内创建的ID也不同。)

我想知道,如果您有两个Firebase ID,例如: qofV6w2odvZEBnPaE828awAx9rc2FK2n0xyLRKwQGrysfwBxQdP35Kw7 有没有办法使用Javascript订购它们,以便Firebase首先创建的那个是第一个,最近创建的那个将是第二个?

我不确定在没有Firebase代码的情况下Javascript是否可行(如果Firebase使用自己的算法来创建ID),但我想知道是否可以仅使用Javascript订购ID ?如果没有,那么最好的方法是什么?提前谢谢!

1 个答案:

答案 0 :(得分:2)

你在这里混淆了两个概念:

  • Firebase身份验证用户ID(也称为UID),它们只是标识用户的一系列随机字符。

  • Firebase数据库推送ID(通过调用push()childByAutoId()创建),这些ID是自动生成的,不断增加密钥。

数据库的推送ID本质上是有序的。来自身份验证的UID不是。

如果要按创建顺序列出Firebase身份验证用户,则应将用户信息存储在数据库中。虽然您可以将它们存储在推送ID下以按时间顺序排列,但将用户存储在其UID下更为惯用。如果您为每个用户添加时间戳,您仍然可以按创建顺序列出它们。

示例JSON:

Users
  uidOfEmily:
      creationTimestamp: 1484320868847
      name: "Emily"
  uidOfPuf:
      creationTimestamp: 1452784908658
      name: "Frank"

按创建时间排序的代码:

ref.child("Users").orderBy("creationTimestamp").on("child_added"...