Я делаю веб-приложение на Angular 6 и angularfire2 . В моем документе в Firestore есть поле с именем fileUrl
со ссылкой на файл в хранилище. Я пытаюсь сначала удалить документ, а затем удалить файл. (Я не знаю, смогу ли я сделать партию для этого)
this.competitionService.deleteCompetition(competition.id, competition.fileUrl)
.then(res => {
// Deleted
}, err => {
console.log(err);
});
Из основного сервиса
deleteCompetition(competitionId: string, fileUrl: string) {
return new Promise<any>((resolve, reject) => {
this.competitionsCollection.doc(competitionId).delete()
.then(res => {
if (fileUrl) {
this.uploadService.deleteFile(fileUrl).then(response => {
resolve(res);
}, err => {
console.log(err);
});
resolve(res);
} else {
resolve(res);
}
}, err => {
reject(err);
});
});
}
Еще один сервис для хранения
getMetadata(url: string) {
const ref = this.storage.ref(`${config.storage_files}/${url}`);
return ref.getMetadata().toPromise();
}
async deleteFile(fileUrl: string) {
const fileMetadata: FileMetadata = await this.getMetadata(fileUrl);
return new Promise<any>((resolve, reject) => {
this.storage.ref(fileMetadata.fullPath).delete().toPromise()
.then(res => {
resolve(res);
}, err => {
reject(err);
});
});
}
FirebaseStorageError {code_: «хранилище / объект не найден», message_:
«Firebase Storage: Объект»
'files / https: / firebasesto… 4c92-3a0e-45d4-adf3-5d81900f3953' не
существовать. ", serverResponse_:" {↵ "ошибка": {↵ "код": 404, ↵
"message": "Not Found. Не удалось получить объект" ↵} ↵} ", name_:
"FirebaseError"}
Я не понимаю причину ошибки, которую я получаю.
Моя цель - удалить документ в Firestore, а также удалить файл в хранилище, а затем показать пользователю сообщение.