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

时间:2020-03-10 15:20:59

标签: android firebase firebase-storage

我正在为我的Android应用程序使用Firebase Storage,并且我有一个根文件夹“ 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;
                });
    }

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

1 个答案:

答案 0 :(得分:1)

列出文件的API provided by Firebase shallow -它不返回嵌套在给定前缀下的文件。 API为您提供了“文件夹”和直接前缀的文件。如果您想更深入一点,就必须打个电话-每个要列出的虚拟“文件夹”都要打一个电话。