Android 从多文件夹Firebase存储获取所有文件

Android 从多文件夹Firebase存储获取所有文件,android,firebase,firebase-storage,Android,Firebase,Firebase Storage,我正在为我的Android应用程序使用Firebase存储,我有一个根文件夹“Wallpapers”,该文件夹中有多个不同类别的文件夹。我需要在一次呼叫中获取所有这些文件夹中的所有文件。我用了下面的方法, private void loadWallpapers(){ StorageReference listRef = firebaseStorage.getReference().child("Wallpapers"); listRef.listAll()

我正在为我的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;
                });
    }

因为它包含多个侦听器,所以这是实际的方法吗?或者有更好的方法吗?

列出的文件很浅-它不会返回嵌套在给定前缀下的文件。API为您提供了“文件夹”和立即前缀的文件。如果你想更深入,你必须打多个电话——每个虚拟“文件夹”一个电话,你想列出它。

这样行吗?因为这将列出“墙纸”文件夹中的所有图像。在我的情况下,此位置没有文件。所有图片都在“墙纸”文件夹的子文件夹内。如果你真的需要在一个请求中获取所有文件,考虑使用云SDK编写后端代码,并让客户端通过一些API端点调用该文件。