2017-01-13 81 views
0

我想知道在JavaScript中是否有一種簡單的方法來按照時間順序排列兩個Firebase用戶ID?據我所知,Firebase ID的前半部分由字母和數字組成(代表創建ID的時間),後半部分是一串隨機字母和數字(應該確保即使在同一毫秒內創建的兩個ID也會不同)。如何使用Javascript按時間順序訂購Firebase ID

我想知道,如果你有兩個火力地堡的ID,例如: qofV6w2odvZEBnPaE828awAx9rc2FK2n0xyLRKwQGrysfwBxQdP35Kw7 有沒有辦法使用JavaScript命令他們,使得由火力地堡創造了一個第一將是第一,和一個最近創建的將會是第二個?

我不確定在沒有Firebase代碼的情況下Javascript是否可行(如果Firebase使用他們自己的算法創建ID),但是我想知道是否可以僅使用Javascript命令ID?如果不是,那麼最好的方法是什麼?提前致謝!

回答

1

你這裏混淆兩個概念:

  • 火力地堡認證用戶ID(也稱爲的UID),這是隻是一個識別用戶的隨機字符序列。

  • Firebase數據庫推送ID(通過調用push()childByAutoId()創建),它們是自動生成的,不斷增加密鑰。

數據庫的推送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"... 
+0

啊,這是完美的,再次感謝您的幫助弗蘭克! – Emily