2017-04-07 84 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); 

這是所有