Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

212
Vistas
Firebase: cargue la cadena pdfFileFormat como matriz de bytes/uint en firestore

Tengo una cadena pdfFileFormat como se muestra a continuación:

 "%PDF-1.5 4 0 obj <</Type /Page/Parent 3 0 R/Contents 5 0 R/MediaBox [0 0 612 792]/Resources<</Font<</FAAAAH 7 0 R/FAAAAJ 9 0 R/ FAAABD 13 0 R>>/XObject<</X1 11 0 R/X2 15 0 R>>>>/Group <</Type/Group/S/Transparency/CS/DeviceRGB>>>> endobj 5 0 obj <</Length 16 0 R/Filter /FlateDecode>>stream ...

Cuando veo esta solicitud a través del cartero, aparece como un pdf: ingrese la descripción de la imagen aquí

Estoy tratando de cargar esto en Firebase y puedo extraer la parte de texto como se muestra a continuación.

Probé estos dos métodos:

uploadBytes cadena de uploadString

 const getBytesData = () => { if (user) { console.log('Getting'); getInvoicePDFStringByInvoiceId('129', user.token).then((data) => { console.log('Data = ', data); const blob = new Blob([data.message], { type: 'application/pdf' }); const storageRef = ref( storage, 'invoices/' + user.uid + '/' + '129.pdf' ); console.log('Uploading the file now'); uploadBytes(storageRef, blob) .then(() => { console.log('Uploaded a blob or file!'); }) .catch((error) => { console.log("Oops we're failing= ", error.message); }); }); } }; const uploadFromString = () => { if (user) { console.log('Getting'); getInvoicePDFStringByInvoiceId('129', user.token).then((data) => { const storageRef = ref( storage, 'invoices/' + user.uid + '/' + '129.pdf' ); console.log('Uploading the file now'); uploadString(storageRef, data.message) .then(() => { console.log('Uploaded a string'); }) .catch((error) => { console.log("Oops we're failing= ", error.message); }); }); } };

pero ninguno parecía estar funcionando. ¿Alguien puede decirme cómo lograr esto? O alguien ya ha hecho algo similar? Tenga en cuenta que la cadena anterior no está codificada en UTF-08 ni en base64, solo se conoce como pdfFileFormat .

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Pude solucionar este problema. En lugar de convertir la respuesta en .text , usé .blob().then(data => {}) y luego envié los datos a la interfaz. Aquí está el código completo:

 getInvoice().then((response) => { if (response.status !== 200) return { error: true, message: 'The requested invoice is unavailable at the moment', }; else return response .blob() .then((data) => { return { error: false, message: 'Blob acquired successfully', blob: data, }; }) .catch((error) => ({ error: true, message: error.message })); })

Y así es como lo estoy emitiendo:

 const getUserInvoicePDFString: express.Handler = async (req, res) => { const invoiceId = req.params.id as string; const invoicePdf = await getInvoiceAsPdf(invoiceId); if (invoicePdf.blob) { const blob = invoicePdf.blob; res.type(blob.type); return blob.arrayBuffer().then((buf) => { res.send(Buffer.from(buf)); }); } else return res.status(400).json( synthesizeSuccessResponse({ payload: invoicePdf, }) ); };
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda