当前位置: 首页 > 知识库问答 >
问题:

firebase云函数onFinalize触发器没有预定义桶?

呼延弘方
2023-03-14
  • /loads/-lw1uysdunyyfmrrv6tl
  • /loads/-lwisa5hknl_uxw3k36f
  • /loads/-lwkpum-q7wnv-wz49un

https://ibb.co/nnqktyc这里是存储的屏幕截图

我想触发云功能时,新文件已创建在其中一个文件夹。我不知道文件将在哪里创建。我不知道这是否可能。所以我需要一个建议。

我的主要目标是在云功能中合并2个pdf文件。在我的应用程序(用vuejs编写的TMS)中,我在前端使用HTML2Canvas/jspdf创建ConfirmationOrder.pdf,然后将其保存到storage/loads/${loadID}。以后用户可以在同一桶上手动上传pod.pdf。当它发生时,我希望我的云功能合并这两个PDF在一个新的文件(在相同的存储桶)。但我又一次事先不知道水桶。

以下是我如何在前端上传PDF:

 async uploadConfPDF({ commit }, payload) {
      const PDF = payload.PDF;
      const loadID = payload.loadID;
      const fileName = payload.fileName;

      const fileData = await firebase
        .storage()
        .ref(`loads/${loadID}/${fileName}.pdf`)
        .put(PDF);

      const confOrderURL = await fileData.ref.getDownloadURL();

      return confOrderURL;
    }, 

任何帮助都是非常感谢的。抱歉,如果我的解释不够清楚。英语不是我的母语。

共有1个答案

魏凯捷
2023-03-14

答:

在将文件添加到默认桶时触发的云函数中,可以得到文件路径如下:

exports.yourCloudFunction = functions.storage.object().onFinalize(async (object) => {

    const filePath = object.name; // File path in the bucket.

    //...

});

由于我们使用onfinalize事件处理程序,因此您可以通过使用Object对象的name属性获得这个新文件的路径,该对象的类型为objectMetadata

 类似资料:
  • 实时数据库触发器在写入创建时是排队还是线程化?

  • 在index.js,我有: 我从以下地方复制粘贴了代码:https://firebase.google.com/docs/functions/get-started 不知何故,当我使用 我得到: 错误:分析函数触发器时出错。ReferenceError:未在对象上定义函数。(/home/[USERNAME HERE]/functions/index.js:1:87)在模块中_在对象处编译(modu

  • 我的编译器是和。 输出如下: 具有线程本地存储持续时间的对象的析构函数...保证被调用。

  • 我正在学习Java,正在使用java 8,spring 5.3.9和Apache Tomcat 9。我已经将我的jar文件添加到我的构建路径中的类路径中,将Apache Tomcat添加到我的服务器中,我的项目运行得非常好。现在我开始使用beans和xml文件,我遇到了一个问题。我的代码的一部分被触发,另一部分被忽略。 我有以下界面 FortuneService.java: 和一个快乐财富服务类:

  • 我的问题是:我们是否有一种方法来定义绑定,它将在本地环境中监听存储队列,但在部署到生产时将切换到服务总线? 这听起来像XY问题,所以如果有人有更好的主意来解决我的X问题,我洗耳恭听。

  • 有没有办法在触发云功能之前检查用户是否经过Firebase授权?(或在函数内)