我想知道Javascript中是否有一个简单的方法可以按照时间顺序排列两个Firebase用户ID?据我了解,Firebase ID的前半部分由字母和数字(表示创建ID的时间)的混合组成,后半部分是随机字母和数字字符串(应该是确保即使两个在同一毫秒内创建的ID也不同。)
我想知道,如果您有两个Firebase ID,例如:
qofV6w2odvZEBnPaE828awAx9rc2
和FK2n0xyLRKwQGrysfwBxQdP35Kw7
有没有办法使用Javascript订购它们,以便Firebase首先创建的那个是第一个,最近创建的那个将是第二个?
我不确定在没有Firebase代码的情况下Javascript是否可行(如果Firebase使用自己的算法来创建ID),但我想知道是否可以仅使用Javascript订购ID ?如果没有,那么最好的方法是什么?提前谢谢!
答案 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"...