Subir Imágenes A FireBase Y Descargarlas Sin Fetch – React, React Native, Expo Y Firebase ✅

React
React Native
Firebase

Actualmente estamos en la versión de React Native Expo SDK32, y desde la SDK30 dejo de funcionar el fetch hacia las image URI para poder hacer blob y de esta manera subir la imagen a Firebase u otro servidor.

Hemos creado una función para solucionar este problema utilizando XMLHttprequest y es completamente funciona, claro esta que es temporal hasta que Expo solucione el error del fech, la función sería la siguiente.

Es muy sencilla de usar, solo tenemos que llamar a la función y mandarle la URI de la imagen y él ya se ocupa de devolvernos esta URI pasada por el blob y lista para subir a cualquier servidor.

uploadImage = uri => {
 return new Promise((resolve, reject) => {
   let xhr = new XMLHttpRequest();
   xhr.onerror = reject;
   xhr.onreadystatechange = () => {
     if (xhr.readyState === 4) {
       resolve(xhr.response);
     }
   };

   xhr.open("GET", uri);
   xhr.responseType = "blob";
   xhr.send();
 });
};

 

Si quieres ver un tutorial de como usar esta función con el ImagePicker de Expo te dejo un video donde lo explico paso a paso.