Я только что делал тест с реакцией и firebase (простое приложение для загрузки изображения и, после загрузки, показа его на странице).Уплос всегда успешен, но я не могу показать изображение, потому что «dowloadURL» не определено.
Может кто-нибудь мне помочь?
Вот код вызова React / Firebase
handleUpload(e) {
console.log('handelUpload');
const file = e.target.files[0];
const storageRef = firebase.storage().ref(`/fotos/${file.name}`);
const task = storageRef.put(file);
task.on(
'state_changed',
snapshot => {
let percentage = snapshot.bytesTransferred / snapshot.totalBytes * 100;
this.setState({ uploadValue: percentage });
},
console.log,
() => {
const record = {
photoURL: this.state.user.photoURL,
displayName: this.state.user.displayName,
image: task.snapshot.downloadURL
};
const dbRef = firebase.database().ref('pictures');
const newPicture = dbRef.push();
newPicture.set(record);
}
);
}
И это код, куда я помещаю изображение при загрузке
<FileUpload onUpload={this.handleUpload} />
{this.state.pictures.map(picture =>
<div>
<hr/>
<img src={picture.image} alt=""/>
<br/>
<img width="32" src={picture.photoURL} alt={picture.displayName}/>
<br/>
<span>{picture.displayName}</span>
</div>
).reverse()}
</div>
Спасибо!