Загрузка изображения в firebase из expo response native увеличивает размер изображения - PullRequest
0 голосов
/ 17 декабря 2018

Я сталкиваюсь с очень странной проблемой: когда я загружаю изображение в firebase через собственное приложение expo реакции, размер изображения увеличивается более чем вдвое.

Вот мой код, и если кто-то может помочь емубыл бы очень благодарен.

 _pickImage = async () => {
    await this.askPermissionsAsync(); // I have handled the permissions


  var pickerResult = await ImagePicker.launchImageLibraryAsync({
 base64:false,
 aspect:[4,3],
 quality: 0.2,
  });

  if (!pickerResult.cancelled) {
    this._handleImagePicked(pickerResult.uri);
    this.setState({itemImage:pickerResult.uri})

  }
  }


 _handleImagePicked = async pickerResult => {
      this.params = this.props.navigation.state.params;
      var passedParameter = this.params.item.key;

         var uploadUrl = await uploadImageAsync(pickerResult, passedParameter);
          this.setState({ itemImage: uploadUrl });
          console.log("itemIma",uploadUrl)
      }


async function uploadImageAsync(uri,passedParameter) {

// прошлоПараметры - переданные значения с предыдущей страницы

  const blob = await new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest();
    xhr.onload = function() {
      resolve(xhr.response);
    };
    xhr.onerror = function(e) {
      console.log(e);
      reject(new TypeError('Network request failed'));
    };
    xhr.responseType = 'blob';
    xhr.open('GET', uri, true);
    xhr.send(null);
  });

  const timestamp = Date.now()

  const ref = firebase
    .storage()
    .ref()
    .child("CategoryDescription" + "/" + `${passedParameter}` + "/" + `${timestamp}`);

  const snapshot = await ref.put(blob);

  blob.close();
  const downloadUrl = await snapshot.ref.getDownloadURL();

  return downloadUrl;
}

Пожалуйста, помогите мне, так как я сталкиваюсь с проблемой в течение долгого времени, и я не могу найти решение.

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