2017-09-16 73 views
0

首先,我使用的是FirebaseUI for android和Firebase Database。显示项目以降序排列

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

下面是我如何查询。

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

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

+0

可能颠倒数组? –

+0

只有在执行适配器时,才可能开始填充数组。 –

+1

我建议使用你自己的侦听器和适配器,如果你想实现这一点。 –

回答

0

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

download * (-1) 

0 - download 

这样,你会在数据库中保存所需的顺序,然后不再需要在Android方面的工作。

+0

很好的建议,但如何改变现在已经存在于数据库中的那些值? –

+0

也许您可以编写云端功能或使用Firebase Admin SDK(https://firebase.google.com/docs/admin/setup和https://firebase.google.com/docs/database/admin/start) –