在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.这种结构是否可能,我是否在正确导出方面犯了一些明显的错误?当我尝试在没有处理程序的情况下直接导出时,检测到功能。
答案 0 :(得分:1)
您仍然需要使用功能构建器API定义导出的功能。在您的第一个代码位中就是这样:
export fun = functions.storage.object().onFinalize(...)
如果您没有使用此API从index.js构建和导出函数,则Firebase CLI将找不到任何函数,并且不会部署任何内容。您可以根据需要从所需文件中使用此API,但是index.js最终仍必须导出这样构建的函数。
实际上,如果您正在使用此功能而不在此处显示它,那么我建议您编辑问题以显示正在播放的所有文件的complete, minimal example。