Estoy tratando de cargar archivos en el almacenamiento de firebase usando expo, pero aparece una advertencia cuando intento cargar archivos en el almacenamiento de firebase.
Esta es la función que uso para elegir archivos del dispositivo
const pickDocument = async () => { let result = await DocumentPicker.getDocumentAsync({ // type: "application/pdf", }); if (result != null) { setfile(result); setfileName(result.name); seturi(result.uri); console.log(result); } };Esta es la función que uso para cargar archivos.
const uploadLessonSlide = async (uri) => { const blob = await new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.onload = function () { resolve(xhr.response); }; xhr.onerror = function (e) { console.log("error"); console.log(e); reject(new TypeError("Network request failed")); }; xhr.responseType = "blob"; xhr.open("GET", uri, true); xhr.send(null); }); const ref = storage.ref().child("images"); const snapshot = await ref.put(blob); blob.close(); return await snapshot.ref.getDownloadURL(); };Este es el mensaje de advertencia
[Unhandled promise rejection: TypeError: Network request failed] at node_modules/react-native/Libraries/Network/XMLHttpRequest.js:600:10 in setReadyState at node_modules/react-native/Libraries/Network/XMLHttpRequest.js:395:6 in __didCompleteResponse at node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js:189:10 in emitEste es el resultado de console.log() del selector de archivos
Object { "name": "sinhala-nisadas-10.jpg", "size": 19346, "type": "success", "uri": "/data/user/0/host.exp.exponent/cache/ExperienceData/%40shehan82%2FschoolyMobNative/DocumentPicker/97a75d14-1b7f-468b-aeae-59a6e65aa96b.jpg", }Mensaje de error que recibí de xhr.onerror
Event { "isTrusted": false, }puede intentar reemplazar la llamada xhr con fetch
const pickDocument = async () => { let result = await DocumentPicker.getDocumentAsync({ // type: "application/pdf", }); if (result != null) { const r = await fetch(result.uri); const b = await r.blob(); console.log(JSON.stringify(b)); console.log(result); } };