Я пытаюсь создать кнопку загрузки с angular 5, я использую этот код в своем файле .ts:
handleFiles(e) {
this.file = e.srcElement.files[0];
if (this.file.size > 2097152) {
let snackBarRef = this.snackBar.open('Images must be 2 MB or less', 'OK!', {
duration: 3000
});
} else {
this.uploadImage();
}
}
uploadImage() {
let storageRef = firebase.storage().ref();
let path = Date.now().toString() + '-' + this.file.name;
let iRef = storageRef.child('posts/' + path);
let me = this;
iRef.put(this.file).then((snapshot) => {
let snackBarRef = this.snackBar.open('Image uploaded', 'OK!', {
duration: 3000
});
this.storageRef.child('posts/' + path).getDownloadURL().then(function(url) {
me.imageUrl = url;
me.newThumbnail = url;
});
});
}
У меня в консоли появилась эта ошибка: Ошибка: не перехвачено (в обещании): [объект Object].
Есть идеи по этому поводу, пожалуйста? потому что я ничего не мог найти при отладке.





Прежде всего, вы должны обработать ошибку в обещаниях.
iRef.put(this.file).then((snapshot) => {
let snackBarRef = this.snackBar.open('Image uploaded', 'OK!', {
duration: 3000
});
this.storageRef.child('posts/' + path).getDownloadURL().then(function(url) {
me.imageUrl = url;
me.newThumbnail = url;
})
.catch( error => { console.error(error) })
})
.catch( error => {
console.error(error);
})
Так вы сможете увидеть, что и где происходит.
Вы уверены, что эта ошибка возникает из-за этого блока кода?
Да, я отладил код, который показывает ошибка при выполнении этого кода
И к какому из этих двух обещаний относится эта ошибка?
Я нашел это, все, что мне нужно, это просто добавить var storageRef = firebase.storage (). Ref (newFirebaseSrcVal); перед сохранением URL-адреса теперь он работает отлично, большое спасибо за помощь @Christian.
все так же, как и раньше, есть идеи по поводу ошибки? о чем все?