javascript - 显示来自 firebase 存储的所有图像(反应原生)
问题描述
我可以让它显示一个图像,但进入一个文件夹并显示所有图像。我觉得我的映射是错误的。
据我了解.child()
是指文件的名称,但据我了解,它也可以指您要访问的文件夹并listAll()
告诉它列出所有作为该文件的文件。
const [sampleImage, setSampleImage] = useState();
const getSampleImage = async () => {
const imageRef = firebase.storage().ref().child('Front/').listAll();
const url = await imageRef.getDownloadURL().catch((error) => { throw error });
setSampleImage(url);
}
useEffect(() => {
getSampleImage();
});
return (
{ sampleImage && getSampleImage.map(Image => (
<View style={{ justifyContent: 'center' }} key={imageRef.id}>
<Image source={{ uri: sampleImage.get(k) }} style={{ width: 350, height: 350 }} />
</View>
))}
);
}
解决方案
listAll()
API返回 a 的 promise ,ListResult
其中包含项目列表,StorageReference
因此您需要等待该列表,循环遍历该列表,然后调用getDownloadURL()
每个列表。
就像是:
const getSampleImage = async () => {
const imageRefs = await firebase.storage().ref().child('Front/').listAll();
const urls = await Promise.all(imageRefs.items.map((ref) => ref.getDownloadURL());
setSampleImage(urls);
}
进而:
{ sampleImage && getSampleImage().map(url => (
<View style={{ justifyContent: 'center' }} key={imageRef.id}>
<Image source={{ uri: url }} style={{ width: 350, height: 350 }} />
</View>
))}
推荐阅读
- google-cloud-platform - client_disconnected_after_partial_response 从本地 ISP 之一访问负载平衡
- node.js - 如何解决部署节点应用程序问题
- javascript - 每次我更新 js 文件行为时,nodemon 包都会引发错误:“[nodemon] 应用程序崩溃 - 等待文件更改后再启动”
- python - 如何将 Python 中的图像数组(枕头对象)上传到 Google Cloud
- angular - Angular 前端(使用代理)请求错误的后端 url
- excel - VBA:IF THEN ELSE 函数中 ComboBox 的值
- vuejs2 - 支持模式和非模式路线
- sequelize.js - 在多对多关联中设置不同的键
- amazon-web-services - 无法将 RDS Postgres 迁移到 AWS Aurora
- microsoft-graph-api - Microsoft Graph API - /drive/root/children 始终为空,我不明白我做错了什么