【问题标题】:Pipe file read stream in Firebase callable functionFirebase可调用函数中的管道文件读取流
【发布时间】:2019-07-10 14:32:16
【问题描述】:

我有一个 Firebase 可调用函数,它的定义如下:

exports = module.exports = functions.https.onCall((data, context) => {
    // ...
})

我想要做的是将文件读取流(从 Firebase 存储读取)传输到我的 可调用函数 的响应,就像我在这个 http 函数中所做的那样>:

exports = module.exports = functions.https.onRequest((req, res) => {
    const file = defaultStorageBucket.file(`/reports/myReport.pdf`);
    const readStream = file.createReadStream();
    readStream.pipe(res)
});

是否有可能实现这一目标以及如何实现?我注意到 context 参数包含一个 rawRequest 属性,其中包含 Response 但我不知道如何使用它。

我的最终目标是立即在 Firebase 应用的客户端上下载文件。

【问题讨论】:

    标签: node.js firebase express google-cloud-functions


    【解决方案1】:

    这不是可调用函数的好用例。可调用函数总是返回 JSON 类型的数据,并且该数据由函数使用您从它返回的值自动序列化。不支持管道数据。如果您确实想从可调用函数返回某个任意文件的内容,则必须读取内存中文件的全部内容,将其编码为字符串,将该字符串放入 JavaScript 对象,然后返回该对象.这实际上不是可调用函数的目的 - 在这种情况下,您最好坚持使用常规 HTTP 类型的函数。

    【讨论】:

    • 是否可以在常规 HTTP firebase 函数中传输数据?
    • 请教,存储触发的云功能是一个很好的用例吗?如何在字节级别验证上传?如何在字节级别操作存储文件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 2015-11-08
    • 2023-02-09
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    相关资源
    最近更新 更多