Реагируйте на родной - массив загрузок URI в Firestore и получите downoadableURL - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть две функции, одна - загрузить изображение в Fire Store, а другая - добавить пост. Я использую функцию загрузки внутри функции загрузки.

Все работает абсолютно нормально. Но мне нужно загрузить несколько изображений (массив).

addPost = async({text, localUri, kaina }) => {
        const remoteUri = await this.uploadPhotoAsync(localUri, `photos/${this.uid}/${Date.now()}`);
        return new Promise((res,rej) => {
            this.firestore.collection("ads").add({
                text: text,
                kaina: kaina,
                uid: this.uid,
                timestamp: this.timestamp,
                image: remoteUri,
            })
            .then(ref => {
                res(ref);
            })
            .catch(error => {
                alert(error);
              });
        }
        )
    }

 uploadPhotoAsync = async (uri, filename) => {
        return new Promise(async (res,rej) => {
            const response = await fetch(uri);
            const file = await response.blob();

            let upload = firebase
            .storage()
            .ref(filename)
            .put(file);

            upload.on(
                "state_changed", 
                snapshot => {}, 
                err => {
                rej(err);
            },
            async () => {
                const url = await upload.snapshot.ref.getDownloadURL();
                res(url);
            }
            )
        });
    };

У меня есть компонент Карусель, где я отображаю изображения из массива состояний. Работает так же, но я хочу показать изображения из пожарного магазина из того же поста.

, так как я могу передать массив URI (из состояния) в uploadPhotoAsync = async (uri, filename) и загрузить, скажем, 5 изображений , а затем получить 5 URL-адресов для загрузки, чтобы я мог отобразить их в карусели?

...