метод:
у получить URL-адрес для загрузки, как только загрузка изображения будет завершена, а затем для downloadURL будет задано значение newAds.picLink (object.property), но в этом коде, поскольку загрузка выполняется
newAds.update({ picLink: downloadURL });
вызывается, который выдает ошибку, так как downloadURL в настоящее время недоступен и находится в процессе. Я решил эту проблему, установив setTimeOut на 8 секунд, что позволяет сначала полностью загрузить изображение, а затем получить downloadURL, но это не правильно.
Как я могу создать правильный обратный вызов, который устанавливает newAds.picLink = downloadURL после полной загрузки изображения?
addSubmitted.addEventListener('click', e => {
const newAds = _db.ref(userID).push();
const newAd = {
};
const ref = firebase.storage().ref();
const file = $('#exampleInputFile').get(0).files[0];
const name = (+new Date() + '-' + file.name);
const task = ref.child(name).put(file, {contentType: file.type});
function abc() {
task.snapshot.ref.getDownloadURL().then((downloadURL) => {
console.log('File available at', downloadURL);
console.log(downloadURL);
newAds.update({ picLink: downloadURL });
});
task.catch(error => {
// Use to signal error if something goes wrong.
console.log(`Failed to upload file and get link - ${error}`);
});
}
setTimeout(abc,8000);