如何在Firebase Storage中列出文件和文件夹

时间:2019-03-20 01:22:25

标签: firebase firebase-storage

我正在从事一个学校项目,并选择使用Firebase作为通过我正在开发的应用程序上载/下载文件的存储选项。我希望能够向用户显示特定文件夹中所有文件的列表,并使该用户能够上传文件。但是,似乎访问Firebase存储中信息的唯一方法是作为开发人员知道文件是什么,而不是查找文件并动态显示它们。我希望我对此很有道理。

基本上,我希望我的应用访问Firebase存储,转到指定的文件夹,然后根据文件夹中的内容在视图组中创建一堆图像按钮,而无需事先知道要做什么。期待。

是否可以通过元数据来实现?就像在这种情况下,当在此父文件夹中创建新文件/文件夹时,我是否还可以以编程方式更新该父文件夹的元数据,说:“嘿,此文件夹中有这些特定文件吗?”

2 个答案:

答案 0 :(得分:1)

当前,Firebase存储中没有API可以列出文件夹中的所有文件。

您可以做的是在其他地方维护元数据信息数据库(例如文件名和文件夹名)。

Firebase Realtime Database是完成此任务的不错选择。

答案 1 :(得分:0)

var storage = firebase.storage();
    
// Create a storage reference from our storage service
 var storageRef = storage.ref();
        // Create a child reference
        var imagesRef = storageRef.child('yourMainFolder');
    
        // Find all the prefixes and items.
        imagesRef.listAll()
            .then((res) => {
    
                res.items.forEach((itemRef) => {
    
                    itemRef.getDownloadURL().then(function (url) {
                        console.log(url)
                    }).catch(function (error) {
                        // Handle any errors
                    });
                });
                res.prefixes.forEach((folderRef) => {
                    console.log("folder", folderRef._delegate._location.path_.split('/')[1])// In my case:)
    
                });
            }).catch((error) => {
                // Uh-oh, an error occurred!
            });