2017-04-07 78 views
1

你好stackoverflow我有一个问题,这个项目我有“后”这是一个“父母”我需要项目内父 这是通过push方法生成的ID进行排序按时间顺序如何按照时间顺序从第一个到最老的像instagram一样对父项进行排序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); 

这是所有