es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo cargar archivos de documentos (pdf, doc) a Firebase en React Native Expo

Estoy tratando de subir archivos doc desde Expo CLI a mi almacenamiento de Firebase en React Native, pero me da un error de red.

Utilizo un selector de documentos para obtener la URI del archivo desde el almacenamiento y luego utilizo esta función para subirlo a mi almacenamiento de Firebase.

const uploadDocuments = () => {
    let receivedDocs = [];
    document.map(async (item, index) => {
      var docName = user.uid + Math.floor(Math.random() * 127212);
      const response = await fetch(item.uri);
      const blob = await response.blob();
      var ref = firebase.storage().ref("postDocs/documents/" + docName);

  ref
    .put(blob)
    .then((res) => {
      ref
        .getDownloadURL()
        .then((url) => {
          receivedDocs.push(url);             
        })
        .catch((e) => {
          alert(e.message);
        });
    })
    .catch((e) => {
      alert(e.message);
    });
});
};

También uso esta función para subir imágenes a Firebase desde el selector de imágenes y funciona bien allí, pero cuando uso esta misma función para la URI del archivo doc que obtengo del selector de documentos para subirlo, me da un error de red.

Aquí está el error que obtengo.

[Unhandled promise rejection: TypeError: Error de solicitud de red]
en nodemodules\whatwg-fetch\dist\fetch.umd.js:535:17 en setTimeout$argument0
en nodemodules\react-native\Libraries\Core\Timers\JSTimers.js:130:14 en _callTimer
en node
modules\react-native\Libraries\Core\Timers\JSTimers.js:383:16 in callTimers
en nodemodules\react-native\Libraries\BatchedBridge\MessageQueue.js:416:4 in _callFunction
en nodemodules\react-native\Libraries\BatchedBridge\MessageQueue.js:109:6 in _guard$argument0
en node
modules\react-native\Libraries\BatchedBridge\MessageQueue.js:364:10 in _guard
en node
modules\react-native\Libraries\BatchedBridge\MessageQueue.js:108:4 in callFunctionReturnFlushedQueue

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que hay un problema con la solicitud de red al intentar cargar archivos doc en Firebase Storage utilizando la función uploadDocuments(). El mensaje de error sugiere que puede haber un rechazo de promesa no controlado debido a una solicitud de red fallida.

    Para investigar más a fondo este problema, puedes probar los siguientes pasos:

    1. Verifica si la conexión de red en el dispositivo es estable y funciona correctamente.
    2. Verifica que se hayan concedido los permisos correctos de Firebase para cargar archivos en el almacenamiento.
    3. Asegúrate de que la URI del archivo de documento obtenido del selector de documentos sea correcta y válida.
    4. Intenta usar un método diferente para cargar el archivo en Firebase Storage y verifica si funciona. Por ejemplo, puedes intentar usar el método de codificación base64 de Firebase Storage para cargar el archivo en lugar de utilizar una solicitud de red para obtener el archivo.
    5. Examina el código en busca de otros errores o problemas potenciales que puedan estar causando el fallo de la solicitud de red.

    Siguiendo estos pasos, deberías poder identificar la causa raíz del error de red y resolverlo en consecuencia.

Comments are closed.