当前,我能够知道其标题和在存储中的位置来获取特定图片,但是我希望能够知道该存储文件夹的位置而不是内容标题,将所有图片显示在我的存储中的一个文件夹中。
我尝试使用下面的代码(projectID是我需要显示其所有元素的文件夹),但它似乎不起作用。我是javascript新手,因此为.once的错误函数调用表示歉意。
const childRef = storageRefer.child(`${projectID}`);
childRef.once("value", function(snapshot) {
snapshot.forEach(function(child) {
child.getDownloadURL().then(function(url) {
console.log(url);
});
});
});
此代码应该能够记录所有图像的url,但是我得到的只是关于.once函数的错误。如果有人知道我做错了什么,或者将所有图像放入存储设备中一个文件夹中的更好方法,那将非常有用,谢谢!
编辑:
回想一下,我意识到我可以将图像的位置存储到数据库中,因为我可以轻松地遍历数据库,而无需了解内部内容并调用存储来获取图像,但这似乎草率?” / p>
答案 0 :(得分:1)
Firebase Storage当前没有API调用可列出文件夹中的所有文件。如果需要此类功能,则应将文件的元数据(例如下载URL)存储在可以列出它们的位置。 Firebase Firestore非常适合此操作,使您还可以轻松地与其他人共享URL。
答案 1 :(得分:0)
@Shodmoth,查看此新的Firebase链接(https://firebase.google.com/docs/storage/web/list-files),了解如何列出文件夹中的所有文件。
// Create a reference under which you want to list
var listRef = storageRef.child('files/uid');
// Find all the prefixes and items.
listRef.listAll().then(function(res) {
res.prefixes.forEach(function(folderRef) {
console.log(folderRef)
});
res.items.forEach(function(itemRef) {
console.log(itemRef) //can call .getDownloadURL() on each itemRef
});
}).catch(function(error) {
// Uh-oh, an error occurred!
});
答案 2 :(得分:0)
var listRef = firebase.storage().ref().child('profiles/');
listRef.listAll().then(function(res){
res.items.forEach(function(itemRef){
itemRef.getDownloadURL().then(function (link) {
console.log(link);
})
})
})
}
此功能将保存在存储“个人资料”中的所有照片 我希望它对你有用。