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.