【问题标题】:Get list of images from Firebase Store从 Firebase 商店获取图片列表
【发布时间】:2018-09-18 11:26:01
【问题描述】:

我想获取我在 Web Firebase 控制台中手动上传的图像列表。有什么方法可以在不使用 FirebaseRecyclerAdapter 的情况下获取所有文件的列表?

【问题讨论】:

  • 您将它们存储在哪里以及下载后要放置在哪里?
  • 如果您想从 Firebase 存储中下载图像,我认为应用程序必须知道所有图像名称。例如,当您将它们存储在List<String> 中时,您可以使用Glide 外部库在for 循环中平滑快速地下载图像。

标签: android firebase android-recyclerview google-cloud-firestore firebase-storage


【解决方案1】:

没有任何功能可以直接从 Firebase 存储中获取您的图像,因此首先,您必须创建一个数据库并在其中添加一个 Imageurl 字段或类似的内容,然后从 URL 中获取该数据或图像使用查询。对于查询构建,我已经提到下面的代码使用它。

 mDatabase = FirebaseDatabase.getInstance().getReference();
    Query query = mDatabase.child("DatabaseName").orderByChild("ImageUrl");
    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {
                // dataSnapshot is the "issue" node with all children with id 0
                for (DataSnapshot issue : dataSnapshot.getChildren()) {
                    // do something with the individual "issues"
                    try {
                        imgeListModel.add(issue.getValue(ImageListModel.class));
                        Log.e("Get Data", issue.getValue(ImageListModel.class).toString());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
           databaseError.toException();
        }
    });

【讨论】:

    【解决方案2】:

    没有现有的方法可以提取您保存在 Firestore 中的文件名列表。相反,您必须使用一些解决方法来手动创建列表。例如,在 Firebase 数据库中维护文件和 URL 列表。

    一种可能的解决方案是使用云函数编写触发器,监听对 Firebase 存储所做的更改。(因为这次您直接通过控制台进行上传,您必须编写触发器并将其托管在云函数中) .在附件列表中有插入/删除/修改时,更新 firebase 数据库中的虚拟文件条目。当您尝试提取文件/ url 信息列表时,从数据库而不是存储中检索它们。

    您可以参考以下文档了解更多信息: https://firebase.google.com/docs/functions/gcp-storage-events?hl=zh-cn

    How to get a list of all files in Cloud Storage in a Firebase app?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 2018-10-28
      • 2018-12-09
      • 1970-01-01
      相关资源
      最近更新 更多