【问题标题】:How do you pull a list of images from firebase storage?您如何从 Firebase 存储中提取图像列表?
【发布时间】:2020-06-01 13:29:46
【问题描述】:

我已成功将一些照片上传到 Firebase,但我想下载某个位置的所有图片

目前我必须做这个丑陋的代码:

const getPhotos = async () => {
    var storage = firebaseApp.storage()
    var gsReference = storage.refFromURL('gs://my-app.appspot.com/')
    for (let i = 1; i < 4; i++) {
        await gsReference
            .child(`${user.id}/${name}/photo${i}.jpg`)
            .getDownloadURL()
            .then((url) => {
                fetch(url).then((res) => {
                    setPhotos((photos) => photos.concat(res.url))
                })
            })
            .catch((error) => {
                console.log('ERROR!', error)
            })
    }
}

这依赖于被称为photo1.jpgphoto2.jpg 等的所有照片。

有没有办法把它们全部拉出来,不管它们叫什么?

【问题讨论】:

    标签: javascript reactjs firebase firebase-storage


    【解决方案1】:

    显然有Reference.listAll函数

    const getPhotos = async () => {
        const storage = firebaseApp.storage();
        let reference = storage.refFromURL('gs://my-app.appspot.com/');
        reference = reference.child(`${user.id}/${name}`);
    
        const {items} = await reference.listAll();
        const urlPromises = items.map(pr => pr.getDownloadURL()
          .then(url => fetch(url))
          .catch(error => error));
    
        let urls = await Promise.all(urlPromises);
        urls = urls.filter(result => !(result instanceof Error));
    
        setPhotos(urls);
    }
    

    【讨论】:

    猜你喜欢
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 2017-10-08
    • 1970-01-01
    • 2017-12-29
    相关资源
    最近更新 更多