Firebase возвращает "Undefined" в "downloadURL" - PullRequest
0 голосов
/ 11 июня 2018

Я только что делал тест с реакцией и 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>

Спасибо!

1 Ответ

0 голосов
/ 11 июня 2018

В версии 5 свойство downloadURL было удалено.Пожалуйста, смотрите: https://firebase.google.com/support/release-notes/js

Теперь вы должны использовать ref.getDownloadURL() (обратите внимание, что этот метод возвращает обещание).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...