2017-06-26 15 views
1

私は店舗のデータベースを持っており、各店舗には名前の前に番号があります。それらはランダムな順序で追加されますが、1から213の順番で表示したいと思います。私の問題は、私がorderbyvalue()のように表示するときです。値によるfirebaseデータベースの順序が正しくない

  • 1ストア
  • 10ストア
  • 11ストア
  • 12ストア
  • 13ストア
  • 14ストア
  • 15ストア
  • 16ストア
  • 17ストア
  • 18ストア
  • 19ストア
  • 2ストア
  • 20ストア
  • 21スト​​ア
  • 22ストア

など。私は1,10,11,12,13などの代わりに1,2,3,4,5などを表示する必要があります

これを解決するにはどうすればよいですか?

+2

あなたが見ているものが正しい順序であるように、文字列として保存しています。あなたはそれによって数字のフィールドと順序を持つ必要があります。 –

+0

Javaコードを投稿してください。 – GGWP

+0

これは、forステートメントを使用すると簡単に実現できます。 – GGWP

答えて

0

Johnがコメントしたように、あなたが得る順序は期待されます。文字列を格納するので、ノードは辞書順に並べ替えられます。

数値で注文する場合は、値を数値として保存するか、数値的に同じ辞書順に並べ替える形式で値を格納する必要があります。例えば。

  • 01ストア
  • 02ストア
  • 10ストア
  • 11ストア
  • 19ストア
  • 20ストア
  • 21スト​​ア
  • 22ストア

それとも

  • 001店
  • 002店
  • 010店
  • 011店
  • 019店
  • 020店
  • 021店
  • 022店

このような状況では、この文字列のパディング/プレフィックスは非常に正常です。主な欠点の1つは、プロジェクトを開始するときに数値に使用する文字数を決定する必要があることです。

+0

ありがとう。ゼロを追加することを考えなかった –

1

先頭の0は一時的な解決策ですが、ユーザーエクスペリエンスに関してはこれは間違っています。ソート機能を実装する必要があります。さらに、システムが999以上の店舗を扱わなければならない場合は、コードに触れる必要はありません。

関連する問題