Firebase PDFKIT在我调用doc.end()之前不会在http响应上启动流

Firebase PDFKIT在我调用doc.end()之前不会在http响应上启动流,firebase,express,google-cloud-functions,streaming,pdfkit,Firebase,Express,Google Cloud Functions,Streaming,Pdfkit,我正在使用pdfkit在运行时生成pdf,并在http响应中返回该文件以供下载。我可以在浏览器端下载文件,但下载对话框不会立即打开。而是等待调用doc.end。我猜pdfkit无法有效地推动流。还有其他人面对过吗?如果是,请指导 下面是我正在尝试的示例代码 exports.testPdfKit=functions.https.onRequest((请求,响应)=>{ //创建pdf文档 文件管道(响应); set('Content-Disposition','attachment;filena

我正在使用pdfkit在运行时生成pdf,并在http响应中返回该文件以供下载。我可以在浏览器端下载文件,但下载对话框不会立即打开。而是等待调用doc.end。我猜pdfkit无法有效地推动流。还有其他人面对过吗?如果是,请指导

下面是我正在尝试的示例代码

exports.testPdfKit=functions.https.onRequest((请求,响应)=>{
//创建pdf文档
文件管道(响应);
set('Content-Disposition','attachment;filename=testpdfstream.pdf`);
writeHead(200,{'Content-Type':'application/pdf'})
const bigText=“一些大文本”
对于(变量i=0;i<1000;i++){
log('内部迭代-',i)
doc.text(bigText);
doc.addPage();
}
文件末尾()

});HTTP函数无法对函数的输入或输出进行流式处理。整个请求在一块内存中传递,响应在一块内存中收集并发送回客户端。两者的最大大小都是10MB。云功能的这种限制没有解决办法(但它确实可以帮助您更好地扩展系统)


如果您需要流媒体或WebSocket,则需要使用不同的产品,如app engine或compute engine。

谢谢Doug。我同意云功能中有10MB的限制,但我没有遵守与流媒体相关的限制。我在没有pdfkit的情况下做了另一个测试,只是使用response.write(sometext),下载对话框在我的所有写入操作都在函数中结束之前就打开了。但是,云函数仍然不支持流式传输响应。延迟将根据响应的大小而改变。