我正在从事一个学校项目,并选择使用Firebase作为通过我正在开发的应用程序上载/下载文件的存储选项。我希望能够向用户显示特定文件夹中所有文件的列表,并使该用户能够上传文件。但是,似乎访问Firebase存储中信息的唯一方法是作为开发人员知道文件是什么,而不是查找文件并动态显示它们。我希望我对此很有道理。
基本上,我希望我的应用访问Firebase存储,转到指定的文件夹,然后根据文件夹中的内容在视图组中创建一堆图像按钮,而无需事先知道要做什么。期待。
是否可以通过元数据来实现?就像在这种情况下,当在此父文件夹中创建新文件/文件夹时,我是否还可以以编程方式更新该父文件夹的元数据,说:“嘿,此文件夹中有这些特定文件吗?”
答案 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!
});