Я пытаюсь получить URL для загрузки, чтобы я мог передать его в обещании в функции, которую я вызываю.
В хранилище загружен образ, но каким-то образом я получаю сообщение об ошибке в строке, гдеi console.log - ошибка 404, как будто ее не существует (но она существует)
uploadFile = (file, metadata) => {
const pathToUpload = this.state.channel.id;
const ref = this.props.messagesRef;
const filePath = `chat/public/${uuidv4()}.jpg`; // uuid is a function that creates random string
this.setState({
uploadState: 'uploading',
uploadTask: this.state.storageRef.child(filePath).put(file,metadata)
},
() => {
this.state.uploadTask.on('state_changed', snap => {
const percentUploaded = Math.round((snap.bytesTransferred / snap.totalBytes) * 100)
this.setState({percentUploaded})
},
err => {
console.error(err)
this.setState({
errors: this.state.errors.concat(err),
uploadState: 'error',
uploadTask: null
})
})
},
() => {
this.state.uploadTask.snapshot.ref.getDownloadURL().then(downloadUrl => {
console.log(downloadUrl) // get error
this.sendFileMessage(downloadUrl, ref, pathToUpload)
})
.catch(err => {
console.error(err)
this.setState({
errors: this.state.errors.concat(err),
uploadState: 'error',
uploadTask: null
})
})
}
)
};
Если вам нужно больше кода, дайте мне знать, но в этой точке, где я регистрирую ошибку, именно в этом проблема.
Просто URL размещенного изображения в БД не может быть получен, я пробовал с правилами хранения, но там все выглядит хорошо.
РЕДАКТИРОВАТЬ: С состоянием слушателя state_changed не меняется - все время егоостается на «загрузке», пока изображение хранится в хранилище