【问题标题】:Display items in descending order of downloads按下载的降序显示项目
【发布时间】:2017-09-16 13:58:27
【问题描述】:

首先,我将 FirebaseUI 用于 android 和 Firebase 数据库。

由于 firebase 查询仅支持按升序排列数据,所以我想出了一个小技巧,以降序显示 RecyclerView 中的项目。

这就是我的查询方式。

selectedCategory = "downloads"
array = new FirebaseArray(imageRef.orderByChild(selectedCategory).limitToLast(50), ImageModel.class);

这是我在FirebaseRecyclerAdapter 上的实现。请注意,这里我覆盖了方法onBindViewHolder。这是重新排序项目的方法。但实际上它并没有按预期工作(无论有没有这段代码都没有效果。两种情况下的列表都是相同的)。

FirebaseRecyclerAdapter<ImageModel, GridViewHolder>(
            array,
            R.layout.grid_item,
            GridViewHolder.class) {

        @Override
        public void onBindViewHolder(GridViewHolder viewHolder, int position) {
            super.onBindViewHolder(viewHolder, getItemCount() -position - 1);
            populateViewHolder(viewHolder, getItem(position), getItemCount() - position - 1);
        }

        @Override
        protected void populateViewHolder(final GridViewHolder viewHolder, final ImageModel model, final int position) {
        .
        .
        .

【问题讨论】:

  • 可能反转数组?
  • 只有在执行适配器时才能开始填充数组。
  • 如果你想实现这一点,我建议使用你自己的监听器和适配器。
  • @makrandpawar 看起来我只需要按照您的建议执行此操作。你可以把它写成我会接受的答案:)

标签: android firebase firebase-realtime-database firebaseui


【解决方案1】:

如果我理解正确,您想根据“下载”计数进行排序。为什么不存储价值

download * (-1)

0 - download

这样您将在数据库中获得所需的订单,然后不再需要在 Android 端工作。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 2022-07-25
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
相关资源
最近更新 更多