React Native Firebase: как загрузить локальный файл изображения

Я понимаю, что загружаю изображения из компонентов средства выбора, однако я изо всех сил пытаюсь понять, как загружать статические файлы в файлы проекта. В моем каталоге проекта есть изображение png, которое я хочу использовать в качестве изображения профиля по умолчанию для вновь созданных пользователей в моем приложении. После нажатия кнопки регистрации в firebase в папке avatars/ должен быть добавлен новый файл с идентификатором пользователя. Я конвертирую локальный файл в объект blob с помощью RNFetchBlob. Код, с которым я сейчас работаю, не вызывает ошибок, он просто не выполняется после строки Blob.build(...).

Есть много устаревшей и не относящейся к делу информации, которую мне сложно просмотреть, поэтому я очень признателен за любую помощь.

при нажатии кнопки регистрации:

handleSignUp = () => {

    // ... initialize user


    // I want to upload the image at '../../img/default_avatar.png' to firebase storage at 'avatars/<user_id>'
    const Blob = RNFetchBlob.polyfill.Blob;
    const fs = RNFetchBlob.fs;
    window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest;
    window.Blob = Blob;

    const imageFile = RNFetchBlob.wrap('../../img/default_avatar.png');

    const ref = firebase.storage().ref('avatars/' + user.uid);
    let uploadBlob = null;

    Blob.build(imageFile, { type: 'image/png' })
      .then((imageBlob) => {
          console.log(imageBlob)
          uploadBlob = imageBlob;
          ref.put(imageBlob, { contentType: 'image/png' });
      })
      .then(() => {
          uploadBlob.close();
          let url = ref.getDownloadURL();
          console.log("url: ", url)
      }).catch(() => {console.log("Firestore default image upload error!")});
}

0 ответов

Другие вопросы по тегам