新しいコンソールにアップグレードした結果、またはいつも起こったことがあるかどうかはわかりませんが、私は読みやすさのために小さな数字を使用していたJavaScript - Firebaseでソートされた数字が間違った順序で表示される
ref.orderByKey().startAt(1).endAt(20).on("value", function);
// Returns: 1, 12, 2
// Desired result: 1, 2, 3, 4, 12
注、私は実際にある2016-4-13
のような日付文字列を使用しています:私はこのような何かをした場合ので、
1, 12, 2, 21, 3, 33, 4
:番号は次のように命じます彼らはなぜ文字列です。
これに対する解決策はありますか、またはクエリやキーの可読性を犠牲にすることを決定する必要がありますか?
さらに詳しい情報: データが日付の大規模なリストから日付のセットを取得しています。 startAtとendAtの唯一の理由は、ダウンロードするユーザーの量を制限することです。たとえば、特定の時間から1週間を取得する。
コード例
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")を使用するか、そのデータ文字列を動的に保持する任意の引数を渡します。 – Redu
含まれているコードが正しい数値を返します。しかし、あなたはそれらを処理する方法を示していません。つまり、何がうまくいかないと言うのは難しいです。また、Firebaseデータベースに保存されているデータについて話すときには、JSONの最小スニペットを含めて、どのデータを使用しているかを表示してください。 Firebaseコンソールのエクスポートボタンをクリックすると、簡単にJSONを(テキストとして、スクリーンショットなしで)取得できます。 –
私はいくつかの情報を追加しましたが、現在の最良の答えは、より小さな数字の前にゼロを追加するという解決策だと思います。 –