【问题标题】:How to sort firebase recycler view? [duplicate]如何对firebase回收器视图进行排序? [复制]
【发布时间】:2022-02-10 22:37:07
【问题描述】:

我想通过 eventDate 订购我的 recyclerview,但我已经在使用 orderByChild。 怎么做?

对不起,如果我解释得不好,但在 SQL 上我想要实现的是:

SELECT * FROM Event WHERE eventOrganizer=stringOrganizer ORDER BY eventDate ASC;

这是代码:

    Query query = databaseReferenceEvent.orderByChild("eventOrganizer").equalTo(stringOrganizer);
    FirebaseRecyclerOptions <ModelEvent> options = new FirebaseRecyclerOptions.Builder<ModelEvent>()
        .setQuery(query, snapshot -> new ModelEvent(
            Objects.requireNonNull(snapshot.child("eventID").getValue()).toString(),
            Objects.requireNonNull(snapshot.child("eventOrganizer").getValue()).toString(),
            Objects.requireNonNull(snapshot.child("eventName").getValue()).toString(),
            Objects.requireNonNull(snapshot.child("eventDate").getValue()).toString(),
            Objects.requireNonNull(snapshot.child("eventStatus").getValue()).toString()))
        .build();

    adapter = new FirebaseRecyclerAdapter<ModelEvent, ViewHolderEvent>(options) {
        @NonNull
        @Override
        public ViewHolderEvent onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.list_attendance, parent, false);
            return new ViewHolderEvent(view);
        }

【问题讨论】:

  • 我不确定我是否理解。你想颠倒顺序吗?其次,按另一个字段排序?
  • 也许您可以更改可以对您的项目进行排序的内容。您可以根据 eventDate 排序
  • 请检查重复的答案,看看如何解决这两种情况。
  • 我更改了问题以使其更简单。我只想按日期排序,但问题是我将 orderByChild 用于 WHERE 函数。

标签: android firebase-realtime-database android-recyclerview


【解决方案1】:

我不知道您的数据库结构如何,但我认为最好重新考虑它。 我的意思是,从最后一个节点开始排序,然后按状态查询排序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多