显示Android中添加的Firebase存储按日期排序的图像 [英] Display images from Firebase Storage order by date added in Android

查看:85
本文介绍了显示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 FirestoreFirebase Realtime Database。这意味着每个对象至少应该有两个字段,一个用于实际URL,另一个用于时间戳。请在我以下帖子的回答中查看如何将时间戳添加到FiRestore:

是用Java编写的,但您可以简单地将其转换为kotlin。一旦您准备好所有URL,您就可以创建查询并根据日期对URL进行排序。在Firebase实时数据库中,默认顺序为升序,但以下是如何颠倒顺序:

在FiRestore中,您只需将所需方向传递给Query的orderBy(String field, Query.Direction direction)方法。

这篇关于显示Android中添加的Firebase存储按日期排序的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆