Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

216
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda