Display images from Firebase Storage order by date added in Android(显示Android中添加的Firebase存储按日期排序的图像)
问题描述
我正在尝试在我的Android应用程序的GridView中显示来自Firebase存储的图像。
我已经这样做了,但是,图像以未知的顺序显示,并且我注意到,当我将图像上载到Firebase存储中时,该存储中有一个"上次修改时间"列。
我的问题是:有没有一种方法可以对GridView中的图像进行排序,以便根据该日期显示它们?(例如,最后添加的文件将具有最新的"上次修改"日期,并将首先查看,诸如此类.)
这是我的代码:
val listRef : StorageReference = FirebaseStorage.getInstance().reference.child("images/posts/$userName")
val fileNameList: ArrayList<String> = ArrayList<String>()
listRef.listAll()
.addOnSuccessListener { it ->
it.items.forEach{
fileNameList.add(it.name)
}
gridView?.adapter = ImageRecyclerAdapter(activity, fileNameList,userName)
}
注意:代码使用kotlin
我到处都找过了,就是找不到任何有帮助的东西。
感谢您的帮助,谢谢:)
推荐答案
根据StorageReference的listAll()方法官方文档:
列出此StorageReference下的所有项目(文件)和前缀(文件夹)。
您可能对列出您所指向的引用中的文件夹不感兴趣。
也就是说,您拥有的最佳选择是将URL存储在数据库中。这样的数据库可以是Cloud Firestore或Firebase Realtime Database。这意味着每个对象至少应该有两个字段,一个用于实际URL,另一个用于时间戳。请在我以下帖子的回答中查看如何将时间戳添加到FiRestore:- ServerTimestamp is always null on Firebase Firestore
是用Java编写的,但您可以简单地将其转换为kotlin。一旦您准备好所有URL,您就可以创建查询并根据日期对URL进行排序。在Firebase实时数据库中,默认顺序为升序,但以下是如何颠倒顺序:
- How to arrange firebase database data in ascending or descending order?
在FiRestore中,您只需将所需方向传递给Query的orderBy(String field, Query.Direction direction)方法。
这篇关于显示Android中添加的Firebase存储按日期排序的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!