Я создаю конечную точку «/ getpdf» и развертываю функцию в firebase. В результате должен быть загружен PDF-файл в браузере. Но когда я прошу это, я получаю ошибку 404. Когда я тестирую одно и то же приложение без firebase (с помощью express app.listen), оно работает нормально, и PDF-файл загружается. Когда я не использую кукловод, а попробую, например, простую функцию firebase request.send ("Hello World"), работает.
Все настройки firebase по умолчанию.
Было бы здорово, если бы кто-нибудь мог мне помочь и показать мне способ загрузить файл pdf, созданный кукловодом, с помощью функций firebase.
заранее спасибо
const express = require('express');
const functions = require('firebase-functions');
const puppeteer = require('puppeteer');
const app = express();
app.use(function cors(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Content-Type', 'application/pdf;charset=utf-8');
res.header('Content-Disposition', 'attachment; filename=some_file.pdf');
next();
});
app.get('/getpdf', async function getpdfHandler(req, res) {
var browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] });
try {
const page = await browser.newPage();
await page.setContent("<html><head></head><body><h1>HELLO WORLD!</h1></body></html>")
const buffer = await page.pdf({
format: 'A4',
printBackground: true,
margin: {
left: '0px',
top: '0px',
right: '0px',
bottom: '0px'
}
})
res.type('application/pdf').send(buffer);
} catch (e) {
res.status(500).send(e.toString());
}
await browser.close();
});
exports.getpdf = functions.https.onRequest(app);