列出 Firebase 存储 v9 中的所有文件
Posted
技术标签:
【中文标题】列出 Firebase 存储 v9 中的所有文件【英文标题】:list all files in firebase storage v9 【发布时间】:2021-12-18 15:44:17 【问题描述】:我正在开发一个页面并使用 firebase 存储作为文件存储。我尝试在 firebase 开发人员文档中使用给定的代码,但我似乎无法使其工作。可能是什么问题?
document.getElementById("but").addEventListener('click', e =>
// Create a reference under which you want to list
const listRef = ref(storage, 'folder/');
// Find all the prefixes and items.
listAll(listRef)
.then((res) =>
res.prefixes.forEach((folderRef) =>
// All the prefixes under listRef.
// You may call listAll() recursively on them.
);
res.items.forEach((itemRef) =>
// All the items under listRef.
console.log( getDownloadURL(ref(storage, `folder/$itemRef`)))
)
)
);
【问题讨论】:
请阅读 Firebase 文档firebase.google.com/docs/database/web/… “我似乎无法让它工作” 您共享的代码有什么问题?如果有错误,请在您的问题中分享错误消息和堆栈跟踪。如果没有错误,在每一行设置断点并在调试器中运行代码。哪一行是第一个不符合您预期的行? 【参考方案1】:我不确定您的代码有什么问题,但有一个错误:
res.items.forEach((itemRef) =>
// All the items under listRef.
console.log( getDownloadURL(ref(storage, `folder/$itemRef`)))
)
getDownloadURL
函数对服务器执行异步调用,因此您需要使用 await
或 then
来捕获该结果:
res.items.forEach((itemRef) =>
getDownloadURL(ref(storage, `folder/$itemRef`))
.then((downloadURL) =>
console.log(downloadURL);
);
)
【讨论】:
以上是关于列出 Firebase 存储 v9 中的所有文件的主要内容,如果未能解决你的问题,请参考以下文章
将图像从 ReactJS 上传到 Firebase v9 存储
将文件上传到 Firebase 云存储时出错:“rules_version = 1 不允许列出存储桶中的对象”