2017-02-10 13 views
1

私はこのようなFirebaseデータベースを持っています。私がエポックタイムを取得し、ゼロから、それを差し引いてartCreated価値を生み出すことに留意すべきである:OrderByChild()は正しくソートされていません(またはまったく)

enter image description here

私が最も最近の提出を取得しようとしていますが、私は逆にするために取得することはできません。

:私はのようなものを行うことによって、逆の順序(最新)を取得しようとしてい

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference(); 
    final DatabaseReference artRef = databaseReference.child("artwork"); 

:私はのように見えるDBの参照、に渡し

public class RecentArtRecyclerViewAdapter extends RecyclerView.Adapter<RecentArtRecyclerViewAdapter.ArtworkViewHolder> { 

    //List<ArtworkModel> artwork; 

    private Context context; 
    private DatabaseReference dbReference; 
    private ChildEventListener mChildEventListener; 

    ArrayList<String> artworkKeys = new ArrayList<>(); 
    ArrayList<ArtworkModel> artwork = new ArrayList<>(); 

    public RecentArtRecyclerViewAdapter(Context context, DatabaseReference dbReference){ 
     this.context = context; 
     this.dbReference = dbReference; 

     dbReference.limitToFirst(100); 

     ChildEventListener childEventListener = new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       Log.d(TAG, "Artwork added..."); 

       ArtworkModel artworkModel = dataSnapshot.getValue(ArtworkModel.class); 

       artwork.add(artworkModel); 
       artworkKeys.add(dataSnapshot.getKey()); 
       notifyItemInserted(artwork.size()-1); 
      } 

:ここに私のコードです

dbReference.limitToFirst(100); 
dbReference.limitToLast(100); 
dbReference.orderByChild("artCreated"); 
dbReference.orderByChild("artCreated").limitToLast(10); 
dbReference.orderByChild("artCreated").limitToFirst(10); 

artCreatedの値を変更してみましたが、すべてが負の数(最小から最大)で開始され、1つの負の数と残りのプラス(最大最小から最小)、同じ結果が得られました。 artCreatedキーは注文に影響を与えていないようです。

何も問題ありません。常にデータベースに格納される順序と同じです。私は間違って何をしています。私はこれに関する多くの答えを参照しましたが、何も私のために働いていません。

  1. は、データ

を注文しますクエリの最も簡単な方法を作成したデータ、クライアント側

  • を操作:

  • +0

    [AndroidでのFirebaseデータの並べ替え]の可能な複製(http://stackoverflow.com/questions/34156996/firebase-data-desc-sorting-in-android) –

    +0

    @vishnunarayanan私は既にそれを参照して試しましたそれ。 – BlackHatSamurai

    +0

    @BlackHatSamuraiは、 'artCreated'がdbの' string'型であることが原因でしょうか? – Droidwala

    答えて

    0

    誰かがこれを行うには2つの方法があることを指摘しています私はこれを行うことが判明しました。オプション1を使用することですが、LinkedListを使用します。私は各オブジェクトをスタックの前面に追加するだけです。柔軟性があり、リストをListViewまたはRecyclerViewで使用できるようにします。この方法では、古いものから順番に古い順に表示されますが、最新のものから古いものを表示または検索することはできます。

    関連する問題