按 Android 中添加的日期顺序显示来自 Firebase 存储的图像
Display images from Firebase Storage order by date added in Android
我正在尝试在我的 Android 应用程序的 GridView 中显示来自 Firebase 存储的图像。
我已经这样做了,但是,图像以未知顺序显示,我注意到当我将图像上传到 Firebase 的存储空间时,有一个 'Last modified' 列。
我的问题是:有没有一种方法可以对 GridView 中的图像进行排序,以便根据该日期显示它们? (例如,最后一个添加的,将具有最新的 'Last modified' 日期,并且将首先被查看等等...)
这是我的代码:
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() 方法的官方文档:
List all items (files) and prefixes (folders) under this StorageReference.
您可能对在您指向的参考中列出文件夹不感兴趣。
也就是说,您拥有的最佳选择是将 URL 存储在数据库中。这样的数据库可以是Cloud Firestore or Firebase Realtime Database。这意味着每个对象应该至少有两个字段,一个用于实际的 URL,一个用于时间戳。请在我的以下回答中查看 post 如何向 Firestore 添加时间戳:
在Java中,但您可以简单地将其转换为 Kotlin。准备好所有 URL 后,您可以创建查询并根据日期对 URL 进行排序。在 Firebase 实时数据库中,默认顺序是升序,但您可以通过以下方式反转顺序:
在 Firestore 中,您可以简单地将所需的方向传递给 Query 的 orderBy(String field, Query.Direction direction) 方法。
我正在尝试在我的 Android 应用程序的 GridView 中显示来自 Firebase 存储的图像。
我已经这样做了,但是,图像以未知顺序显示,我注意到当我将图像上传到 Firebase 的存储空间时,有一个 'Last modified' 列。
我的问题是:有没有一种方法可以对 GridView 中的图像进行排序,以便根据该日期显示它们? (例如,最后一个添加的,将具有最新的 'Last modified' 日期,并且将首先被查看等等...)
这是我的代码:
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() 方法的官方文档:
List all items (files) and prefixes (folders) under this StorageReference.
您可能对在您指向的参考中列出文件夹不感兴趣。
也就是说,您拥有的最佳选择是将 URL 存储在数据库中。这样的数据库可以是Cloud Firestore or Firebase Realtime Database。这意味着每个对象应该至少有两个字段,一个用于实际的 URL,一个用于时间戳。请在我的以下回答中查看 post 如何向 Firestore 添加时间戳:
在Java中,但您可以简单地将其转换为 Kotlin。准备好所有 URL 后,您可以创建查询并根据日期对 URL 进行排序。在 Firebase 实时数据库中,默认顺序是升序,但您可以通过以下方式反转顺序:
在 Firestore 中,您可以简单地将所需的方向传递给 Query 的 orderBy(String field, Query.Direction direction) 方法。