Firebase云功能主处理功能

时间:2020-09-26 03:59:57

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

another stackoverflow post中,建议使用主处理功能将处理分派到不同的功能。

    functions.storage.object().onFinalize((object) => {
      if (object.name.startsWith('User_Pictures/')) {    
        return handleUserPictures(object);
      } else if (object.name.startsWith('MainCategoryPics/')) {
        return handleMainCategoryPictures(object);
      }
    })

我尝试通过使index.js如下来实现此目的:

const handler = require('./handler');
exports.handler = handler.handler;

exports.userpictures = require('./userpictures');
exports.mainpictures = require('./mainpictures');

mainpictures.js中具有以下内容:

exports.handleMainCategoryPictures= async (object) => { ... code here ... }

我运行firebase deploy时未检测到功能。我期待3.这种结构是否可能,我是否在正确导出方面犯了一些明显的错误?当我尝试在没有处理程序的情况下直接导出时,检测到功能。

1 个答案:

答案 0 :(得分:1)

您仍然需要使用功能构建器API定义导出的功能。在您的第一个代码位中就是这样:

export fun = functions.storage.object().onFinalize(...)

如果您没有使用此API从index.js构建和导出函数,则Firebase CLI将找不到任何函数,并且不会部署任何内容。您可以根据需要从所需文件中使用此API,但是index.js最终仍必须导出这样构建的函数。

实际上,如果您正在使用此功能而不在此处显示它,那么我建议您编辑问题以显示正在播放的所有文件的complete, minimal example