Я разрабатываю приложение в firebase. Когда заказ создан, я хочу создать счет-фактуру. Я реализовал эту функцию, но что-то не так с URL-адресами, потому что PDF-файл создан, но, как вы можете видеть на изображении, URL-адрес для его открытия неверен.
Это мой код в облачной функции index.js:
'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
const nodemailer = require('nodemailer');
//...
var PdfPrinter = require('pdfmake');
const fs = require('fs');
var fonts = {
Courier: {
normal: 'Courier',
bold: 'Courier-Bold',
italics: 'Courier-Oblique',
bolditalics: 'Courier-BoldOblique'
},
Helvetica: {
normal: 'Helvetica',
bold: 'Helvetica-Bold',
italics: 'Helvetica-Oblique',
bolditalics: 'Helvetica-BoldOblique'
},
Times: {
normal: 'Times-Roman',
bold: 'Times-Bold',
italics: 'Times-Italic',
bolditalics: 'Times-BoldItalic'
},
Symbol: {
normal: 'Symbol'
},
ZapfDingbats: {
normal: 'ZapfDingbats'
}
};
exports.generateInvoice = functions.database.ref('/pedidos/{documentId}').onCreate((snap, context) => {
return (async () => {
var docDefinition = {
pageSize: 'A4',
pageOrientation: 'portrait',
content: [
//Cabecera
{ image: 'img/logo.png', width: 90, alignment: 'left' },
{ text: `Pedido${snap.key}`, fontSize: 32, margin: [0, 8, 0, 0] }
//Body
],
defaultStyle: {
font: 'Helvetica'
}
};
console.log("Doc defined okey");
const pdfName = snap.key + ".pdf";
const fileName = "pedidos/" + pdfName;
const myPDFfile = admin.storage().bucket().file(fileName);
var printer = new PdfPrinter(fonts);
var pdfDoc = printer.createPdfKitDocument(docDefinition);
pdfDoc.pipe(myPDFfile.createWriteStream());
pdfDoc.end();
})().then(() => {
}).catch (err => {
console.log("An error has ocurred " + err);
});
});
Как видите, PDF-файл создан правильно, но URL-адрес неверный, и я не могу его открыть.
Буду очень благодарен, если мне кто-нибудь поможет.