Android 在Recyclerview中按日期从firestore检索数据

Android 在Recyclerview中按日期从firestore检索数据,android,android-recyclerview,google-cloud-firestore,Android,Android Recyclerview,Google Cloud Firestore,我已经完成了我的应用程序,但在此,我想按日期显示数据。怎么可能呢 这是我的数据库结构 这是我的回收适配器 public class BscRecyclerAdapter extends RecyclerView.Adapter<BscRecyclerAdapter.ViewHolder> { private List<MainPage> mMainPage; private Context context; public BscRecyclerAdapter(Con

我已经完成了我的应用程序,但在此,我想按日期显示数据。怎么可能呢

这是我的数据库结构

这是我的回收适配器

public class BscRecyclerAdapter extends 
RecyclerView.Adapter<BscRecyclerAdapter.ViewHolder> {
private List<MainPage> mMainPage;
private Context context;


public BscRecyclerAdapter(Context context,List<MainPage> mMainPage){
    this.context = context;
    this.mMainPage =mMainPage;
}
@Override
public BscRecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item,parent,false);
    return new ViewHolder(view);   }

@Override
public void onBindViewHolder(BscRecyclerAdapter.ViewHolder holder, final int position) {
    holder.mTitle.setText(mMainPage.get(position).getTitle());
    holder.mDescription.setText(mMainPage.get(position).getDescription());
    holder.mDate.setText(mMainPage.get(position).getDate());
    final String Title = mMainPage.get(position).getTitle();
    final String Description = mMainPage.get(position).getDescription();
    final String Image = mMainPage.get(position).getImage();
    final String Date =  mMainPage.get(position).getDate();
    final String main_id =  mMainPage.get(position).mainId;

    holder.mView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent UpdateIntent = new Intent(context,BscUpdateDelete.class);

            UpdateIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            UpdateIntent.putExtra("main_id",main_id);
            UpdateIntent.putExtra("title",Title);
            UpdateIntent.putExtra("description",Description);
            UpdateIntent.putExtra("date",Date);
            UpdateIntent.putExtra("image",Image);

            context.startActivity(UpdateIntent);

        }
    });
    holder.mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String url = mMainPage.get(position).getImage();
            Intent intent  = new Intent(Intent.ACTION_VIEW);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setData(Uri.parse(url));
            context.startActivity(intent);
        }
    });

    ImageView post_image = holder.mImage;
    Glide.with(context).load(mMainPage.get(position).getImage()).into(post_image);

}

@Override
public int getItemCount() {
    return mMainPage.size();
}
公共类BSCCyclerAdapter扩展
RecyclerView.适配器{
私人列表输入页;
私人语境;
公共BSCCyclerAdapter(上下文、列表和输入页){
this.context=上下文;
this.mMainPage=mMainPage;
}
@凌驾
public BSCCyclerAdapter.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
View=LayoutFlater.from(parent.getContext()).flate(R.layout.list_项,parent,false);
返回新的ViewHolder(视图);}
@凌驾
BindViewHolder上的公共无效(BSCCyclerAdapter.ViewHolder,最终int位置){
holder.mTitle.setText(mMainPage.get(position.getTitle());
holder.mDescription.setText(mMainPage.get(position.getDescription());
holder.mDate.setText(mMainPage.get(position.getDate());
最后一个字符串Title=mMainPage.get(position.getTitle();
最终字符串描述=mMainPage.get(position.getDescription();
最后一个字符串Image=mMainPage.get(position.getImage();
最终字符串Date=mMainPage.get(position.getDate();
最后一个字符串main_id=mMainPage.get(position).mainId;
holder.mView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent UpdateIntent=新的Intent(上下文,BscUpdateDelete.class);
UpdateIntent.setFlags(Intent.FLAG\u ACTIVITY\u NEW\u TASK);
UpdateContent.putExtra(“主id”,主id);
UpdateIntent.putExtra(“标题”,标题);
UpdateContent.putExtra(“说明”,说明);
更新内容putExtra(“日期”,日期);
UpdateContent.putExtra(“图像”,图像);
上下文。开始触觉(更新内容);
}
});
holder.mButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串url=mMainPage.get(position.getImage();
意向意向=新意向(意向.行动\视图);
intent.setFlags(intent.FLAG\u活动\u新任务);
setData(Uri.parse(url));
背景。开始触觉(意图);
}
});
ImageView post_image=holder.mImage;
Glide.with(context).load(mMainPage.get(position.getImage())到(post_image)中;
}
@凌驾
public int getItemCount(){
返回mMainPage.size();
}
我已经在谷歌上搜索了很多次,但我没有找到任何解决方案 请帮忙。 我在我的回收器中所做的以日期显示数据的操作

这是我的片段。 我使用了按日期排序,但在这篇文章中显示了按日期排序,但月份发生了变化

像今天一样,日期是

25-07-2018

26-07-2018

27-07-2018

2018年7月28日

然后当我创建了一个日期为2018年6月27日的新帖子

2018年7月26日之后,我会看到这篇文章

 mFirestore.collection("Bsc").orderBy("date").addSnapshotListener(new 
EventListener<QuerySnapshot>() {
        @Override
        public void onEvent(QuerySnapshot documentSnapshots, FirebaseFirestoreException e) {
            for (DocumentChange doc: documentSnapshots.getDocumentChanges()){
                if (doc.getType() == DocumentChange.Type.ADDED){
                    String doc_id = doc.getDocument().getId();
                    MainPage mainPage = doc.getDocument().toObject(MainPage.class).witId(doc_id);
                    mMainPage.add(mainPage);
                    mainPageRecyclerAdapter.notifyDataSetChanged();

                }
            }
        }
    });
mFirestore.collection(“Bsc”).orderBy(“日期”).addSnapshotListener(新)
EventListener(){
@凌驾
public void OneEvent(QuerySnapshot文档快照,FireBaseFireStore异常e){
对于(DocumentChange文档:documentSnapshots.getDocumentChanges()){
if(doc.getType()==DocumentChange.Type.ADDED){
字符串doc_id=doc.getDocument().getId();
MainPage MainPage=doc.getDocument().toObject(MainPage.class).witId(doc\u id);
mmaInput.add(主页面);
mainPageRecyclerAdapter.notifyDataSetChanged();
}
}
}
});

您还必须提及排序顺序,根据您的要求,排序顺序可以是升序或降序。因此,请将您的查询更改为:-

 mFirestore.collection("Bsc").orderBy("date", Direction.DESCENDING).addSnapshotListener()...

您正在将日期存储到字符串中,这可能会导致将来的排序或其他问题。我建议使用时间戳格式来存储日期。

您还必须提及排序顺序,根据您的要求可以升序或降序。因此,将查询改为:-

 mFirestore.collection("Bsc").orderBy("date", Direction.DESCENDING).addSnapshotListener()...

您正在将日期存储到字符串中,这可能会导致将来的排序或其他问题。我建议使用时间戳格式来存储日期。

是一种推荐的方法,您可以使用
FirestoreRecyclerAdapter
从Cloud Firestore数据库检索数据,并将其显示在
RecyclerView
中你能给我一些关于这个的链接吗?检查上面的链接。在你试图从数据库中检索代码的地方添加代码@sonusharma@Raj请注意,我已经添加了我的代码,这是一种推荐的方法,您可以使用
firestorecycleer从云Firestore数据库检索数据并将其显示在
RecyclerView
中Adapter
@AlexMamo您如何向我推荐有关此的链接?请检查上面的链接。将代码添加到您尝试从数据库检索代码的位置@sonusharma@Raj请注意,我已经添加了我的代码