显示 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>

                ))}

    );

 }


冉冉说
浏览 89回答 1
1回答

慕村9548890

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>))}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript