2017-04-07 4 views
1

こんにちはstackoverflow私はこのアイテムに「支柱」である「投稿」内のアイテムを注文する際に問題があります プッシュ方式により生成されたIDを年代順に並べられ親アイテムを最初のものから順番に並べ替える方法Firebase

は、この方法を試してみてください:.orderByKey()、私はすでにマニュアルを読み、そのメソッドを使用するように私に語ったが、それは

これは私のデータベースでは動作しません。写真の例では、私が注文する必要があることをよく説明しています。 My database photo

これらは私が使用するメソッドと参照は、次のとおりです。

アダプタ方法:

private void setupAdapter() { 
    mPostAdapter = new FirebaseRecyclerAdapter<Post, PostHolder>(
      Post.class, 
      R.layout.row_post, 
      PostHolder.class, 
      FirebaseUtils.getPostRef().orderByKey() 
    ) { 
     @Override 
     protected void populateViewHolder(final PostHolder viewHolder, final Post model, int position) { 
      Post mPost = new Post(); 

      viewHolder.setNumComments(String.valueOf(model.getNumComments())); 
      viewHolder.setNumLikes(String.valueOf(model.getNumLikes())); 
      viewHolder.setNumDislikes(String.valueOf(model.getNumDislikes())); 
      viewHolder.setTime(DateUtils.getRelativeTimeSpanString(model.getTimeCreated())); 
      viewHolder.postOwnerUsernameTextView.setText(model.getUsername()); 
      if(viewHolder.postOwnerUsernameTextView == null){ 
       viewHolder.postOwnerUsernameTextView.setText("Anonymous"); 
      } 
      viewHolder.setPostText(model.getPostText()); 


       final StorageReference storageReference = FirebaseStorage.getInstance() 
         .getReference(model.getPostImageUrl()); 


       Glide.with(getActivity()) 
         .using(new FirebaseImageLoader()) 
         .load(storageReference).into(viewHolder.postDisplayImageView); ... remainder of code 

私はこれが

mPostAdapter = new FirebaseRecyclerAdapter<Post, PostHolder>(
     Post.class, 
     R.layout.row_post, 
     PostHolder.class, 
     FirebaseUtils.getPostRef().getParent().orderByKey 

しかし、データを受信して​​いないそうでレンダリングすることを試みましたアダプターを表示したビューアホルダー

ユーティリティ:

public static DatabaseReference getPostRef() { 
    return FirebaseDatabase.getInstance() 
      .getReference("posts"); 
    } 
    public static Query getPostQuery() { 
    return getPostRef().orderByChild("timeCreated"); 
} 
public static DatabaseReference getMyPostRef() { 
    return FirebaseDatabase.getInstance().getReference("myPosts") 
      .child(getCurrentUser().getEmail().replace(".", ",")); 

答えて

0

は解決策を見つけ、

が、これはすべての

ある LinearLayoutManager

このような
mPostRecyclerView = (RecyclerView) mRootView.findViewById(R.id.recyclerview_post); 
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()); 
    linearLayoutManager.setReverseLayout(true); 
    linearLayoutManager.setStackFromEnd(true); 
    mPostRecyclerView.setLayoutManager(linearLayoutManager); 
    setupAdapter(); 
    mPostRecyclerView.setAdapter(mPostAdapter); 

を設定は非常に簡単であることは皮肉であることは困難でした

関連する問題