为了账号安全,请及时绑定邮箱和手机立即绑定

显示 Firebase 存储中的所有图像(反应本机)

显示 Firebase 存储中的所有图像(反应本机)

冉冉说 2023-09-28 15:44:26
我可以让它显示一张图像,但进入一个文件夹并显示所有图像。我感觉我的映射是错误的。根据我的理解,.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>                ))}    ); }
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

API返回一个 a 的承诺,其中包含一个项目列表listAll(),因此您需要等待该列表,循环该列表,然后调用每个项目。ListResultStorageReferencegetDownloadURL()


就像是:


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>

))}




查看完整回答
反对 回复 2023-09-28
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信