【发布时间】:2020-07-08 14:02:18
【问题描述】:
我正在开发一个基于 Web 表单创建 PDF 的应用程序。
我目前正在尝试使用 pdfmake 基于 firestore 文档创建触发器生成 PDF
import * as functions from 'firebase-functions';
const admin = require('firebase-admin);
admin.initializeApp();
const PdfPrinter = require('pdfmake');
const fs = require('fs');
export const createPDF = functions.firestore
.document('pdfs/{pdf}')
.onCreate(async (snap, context) => {
var pdfName = context.params.pdf;
var printer = new PdfPrinter();
var docDefinition = {
// Pdf Definitions
};
var options = {
// Pdf Options
};
var pdfDoc = printer.createPdfKitDocument(docDefinition, options);
pdfDoc.pipe(fs.createWriteStream('tempDoc.pdf'));
await pdfDoc.end();
// Upload to Firebase Storage
const bucket = admin.storage().bucket('myproject.appspot.com');
bucket.upload('tempDoc.pdf', {
destination: pdfName + '.pdf',
});
return fs.unlinkSync('document.pdf');
});
触发器被调用,但是我收到错误“错误:ENOENT:没有这样的文件或目录,stat 'document.pdf'”
我已经尝试过 onCreate 函数是异步的并且没有。
非常感谢任何帮助
【问题讨论】:
标签: firebase google-cloud-firestore google-cloud-functions firebase-storage