順序錯誤,我不知道,如果發生這種情況爲升級到新的控制檯,或者如果它一直髮生的結果,但我剛剛發現我的代碼中有一個錯誤的這些數字變得有序像這樣:的JavaScript - 排序號碼出現在火力地堡
1, 12, 2, 21, 3, 33, 4
所以如果我做這樣的事情:,我實際使用日期字符串
ref.orderByKey().startAt(1).endAt(20).on("value", function);
// Returns: 1, 12, 2
// Desired result: 1, 2, 3, 4, 12
請注意,我用小號碼可讀性像2016-4-13
這是爲什麼他們是字符串。
是否有這樣的解決方案還是我將不得不決定要犧牲查詢或鑰匙可讀性?
更多信息: 的數據是從日期的大名單得到一組日期。 startAt和endAt的唯一原因是限制用戶下載的數量。例如,要從某個特定時間獲得一週。
代碼示例
ref.orderByKey().startAt("2016-4-5").endAt("2016-4-11").on("value", function(snapshot){
//returns null
});
數據
{
"GroupOne" : {
"2015-11-1" : {
"simplelogin:75" : 5.4,
"simplelogin:77" : 5.5,
"simplelogin:80" : 5.5
},
"2015-11-2" : {
"simplelogin:75" : 5.4,
"simplelogin:77" : 5.6,
"simplelogin:80" : 5.9
},
"2015-11-22" : {
"simplelogin:24" : 2.1
},
"2015-11-3" : {
"simplelogin:77" : 3,
"simplelogin:80" : 0.2
},
"2015-11-31" : {
"simplelogin:77" : 15.8
},
"2015-11-4" : {
"simplelogin:77" : 5.1,
"simplelogin:80" : 0.3
},
"2015-11-5" : {
"simplelogin:77" : 3.8
},
"2015-11-6" : {
"simplelogin:75" : 0.1
},
"2016-0-1" : {
"simplelogin:77" : 13.1
},
"2016-0-10" : {
"simplelogin:75" : 3
},
"2016-0-11" : {
"simplelogin:75" : 3
},
"2016-0-12" : {
"48506d5c-319e-4f47-a29f-c47d6ed82a17" : 3.8,
"simplelogin:75" : 3.2
},
"2016-0-22" : {
"simplelogin:78" : 1
},
"2016-0-5" : {
"simplelogin:80" : 3
},
"2016-0-8" : {
"simplelogin:24" : 0.9,
"simplelogin:77" : 3.2
},
"2016-1-23" : {
"simplelogin:75" : 3.1
},
"2016-1-27" : {
"simplelogin:75" : 6.3
},
"2016-1-28" : {
"simplelogin:75" : 12.2
},
"2016-2-15" : {
"simplelogin:75" : 1
},
"2016-2-2" : {
"simplelogin:75" : 5.1
},
"2016-2-22" : {
"simplelogin:75" : 1,
"simplelogin:78" : 1,
"simplelogin:80" : 1
},
"2016-2-23" : {
"simplelogin:75" : 4.3
},
"2016-2-24" : {
"simplelogin:75" : 5.7
},
"2016-2-25" : {
"simplelogin:75" : 1
},
"2016-2-26" : {
"simplelogin:75" : 2
},
"2016-2-27" : {
"simplelogin:75" : 1
},
"2016-2-28" : {
"simplelogin:75" : 1
},
"2016-2-30" : {
"simplelogin:75" : 6
},
"2016-3-1" : {
"simplelogin:75" : 2,
"simplelogin:77" : 2
},
"2016-3-11" : {
"simplelogin:75" : 8.6,
"simplelogin:80" : 0.9
},
"2016-3-12" : {
"simplelogin:75" : 1
},
"2016-3-14" : {
"simplelogin:75" : 3.8
},
"2016-3-6" : {
"simplelogin:77" : 13.2
},
"2016-4-10" : {
"simplelogin:75" : 2
},
"2016-4-15" : {
"simplelogin:75" : 1
},
"2016-4-25" : {
"simplelogin:75" : 1
},
"2016-4-5" : {
"simplelogin:75" : 6
}
}
}
您正在對字符串進行排序......使用Date.parse(「2016-4-13」)或傳遞可以動態保存該數據字符串的whatever參數。 – Redu
您包含的代碼會返回正確的數字。但是你沒有展示你如何處理它們,這意味着很難說出了什麼問題。另外:在討論存儲在Firebase數據庫中的數據時,請始終包含JSON的最小片段,以向我們展示您正在處理的數據。通過點擊Firebase控制檯中的導出按鈕,您可以輕鬆獲取JSON(如文本,請勿截圖)。 –
我添加了一些更多的信息,但我認爲當前最好的答案是解決方案,在較小的數字前添加零。 –