【问题标题】:Firebase Cloud functions: manipulate image before sending to the userFirebase Cloud 功能:在发送给用户之前操​​作图像
【发布时间】:2021-05-05 09:13:13
【问题描述】:

我想编写一个云 Firebase 函数,该函数能够在用户请求特定图像时触发,然后在将其发送给他之前通过应用图形过滤器对其进行修改。我不希望在客户端应用该过滤器。

【问题讨论】:

    标签: javascript firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    您必须为此编写一个云函数并调用它,而不是直接访问存储桶。没有办法直接干扰对桶的请求。

    我找到了从云函数here 发送图像的基本教程,但我不知道这是否完全符合您的需求,因此您可能需要寻找更详细的教程。

    要修改图像,有一些 JS 库,我建议您查看其中之一。其中之一已经包含在云功能中as it seems

    【讨论】:

    • 谢谢,我想这个答案正是我想要的。但我想知道是否可以使用一些外部 javascript 库来修改图像。还是最多只能使用纯javascript库?
    • “外部”@user12002919 是什么意思?它应该是您使用 npm 导入的库。它可能是一个外部工具,托管在网络上的其他地方,但我强烈建议不要这样做!
    • 正如 MauriceNino 提到的,ImageMagick 默认安装在所有 Cloud Functions 实例上。它是一个具有许多可用转换可能性的库。如果您需要使用另一个库,请通过 npm 安装它(正如 Maurice 所解释的)
    • 完美!谢谢!
    【解决方案2】:

    我强烈建议您在原始/原始图像首次保存时触发触发器,并使用云函数进行修改,然后存储 结果供用户直接调用。冷启动始终是 Cloud Functions 的一个可能问题,即使没有这个问题,您也会在用户体验中增加另一层延迟。

    请注意,即使使用“实时”同步代码,这也适用 - 当用户上传“原始”时,触发/调用云函数以生成过滤版本。这至少会在某种程度上与用户交互重叠(特别是如果他们有几个选择要做出),可能会使应用感觉更灵敏。

    【讨论】:

    • 谢谢,你是对的。但是对于我需要做的事情,就我而言(不是一般情况下),执行您所说的操作会有更多的延迟。但这只是我的情况。谢谢大佬。
    • 查看更新的答案 - 通常有一些方法可以“隐藏”延迟
    猜你喜欢
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2019-07-27
    • 2018-06-20
    • 1970-01-01
    • 2020-11-16
    相关资源
    最近更新 更多