Я пытаюсь получить downloadURL из загруженного мной изображения.С помощью этой функции я загружаю изображение в Firebase Storage
uploadImage() {
this.image = 'movie-' + new Date().getTime() + '.jpg';
let storageRef: any,
parseUpload: any;
return new Promise((resolve, reject) => {
storageRef = firebase.storage().ref('imgs/' + this.image);
parseUpload = storageRef.putString(this.cameraImage, 'data_url');
})
Дело в том, что я хочу сохранить URL-адрес изображения, чтобы я мог взять его из документа в Firestore.Для этого у меня есть эта функция для получения dowloadURL после загрузки изображения.
Если я не ошибаюсь, этот метод должен вернуть строку, исправьте меня, если я ошибаюсь, потому что если это не такЯ не смог бы сохранить его в Firestore
async getImgFromServer(imgName: string) {
let img;
let downloadIMG;
img = firebase.storage().ref("/imgs/" + imgName).getDownloadURL();
let ref= firebase.storage().ref();
const imgRef = ref.child("/imgs/" + imgName);
const downloadURL = await imgRef.getDownloadURL()
return downloadURL
}
Единственная проблема в том, что для этого необходимо загрузить изображение.Я знаю, что эта функция всегда будет возвращать URL, если изображение загружено.Дело в том, что я не знаю, как заставить эту функцию работать, когда uploadImage () завершено.После получения URL-адреса моя функция заключается в сохранении URL-адреса в базе данных Firestore Cloud.
updateImgFromServer(image,id){
this.firestore.doc(`public/${id}`).set({
img:image,
});
}
Существует ли способ гарантировать, что вторая функция ( getImgFromServer () ) будетбыть выполненным только после того, как первый ( uploadImage () ) завершится?
Я знаю, что есть способы получить downloadURL, как только файл загружен в первый фрагмент, который я вставил.Если кто-нибудь знает, как заставить это работать, то это тоже подойдет.