【问题标题】:Getting all files from multiple folders Firebase Storage从多个文件夹 Firebase 存储中获取所有文件
【发布时间】:2020-06-22 12:43:04
【问题描述】:

我正在为我的 Android 应用程序使用 Firebase 存储,并且我有一个根文件夹“Wallpapers”,并且该文件夹中有多个用于不同类别的文件夹。我需要在一次调用中从所有这些文件夹中获取所有文件。我使用了以下方法,

private void loadWallpapers(){
        StorageReference listRef = firebaseStorage.getReference().child("Wallpapers");
        listRef.listAll()
                .addOnSuccessListener(listResult -> {
                    for (StorageReference prefix : listResult.getPrefixes()) {
                        prefix.listAll().addOnSuccessListener(listResult1 -> {
                            for (StorageReference item : listResult1.getItems()) {
                               // Handle data here
                            }
                        });
                    }

                })
                .addOnFailureListener(e -> {
                    // Uh-oh, an error occurred!
                    int i =0;
                });
    }

这是实际的做法吗,因为它包含多个侦听器?还是有更好的方法?

【问题讨论】:

    标签: android firebase firebase-storage


    【解决方案1】:

    列出文件的API provided by Firebase - 它不返回嵌套在给定前缀下的文件。 API 为您提供“文件夹”和直接前缀的文件。如果您想更深入,则必须进行多次调用 - 为您要列出的每个虚拟“文件夹”调用一次。

    【讨论】:

    • 这行得通吗?因为这将列出“壁纸”文件夹中的所有图像。就我而言,此位置没有文件。所有图片都在“Wallpaper”文件夹的子文件夹中。
    • 如果您确实需要在一个请求中获取所有文件,请考虑使用 Cloud SDK 编写后端代码,并让您的客户端通过某个 API 端点调用它。 cloud.google.com/storage/docs/listing-objects
    猜你喜欢
    • 2022-11-17
    • 1970-01-01
    • 2021-07-04
    • 2021-03-03
    • 1970-01-01
    • 2021-03-29
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多