在另一篇stackoverflow文章中,建议使用一个主处理函数,将处理分派给不同的函数。
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岁。这种结构可能吗?我在正确出口方面是否犯了一些明显的错误?当我尝试在没有处理程序的情况下直接导出时,检测到了函数。
您仍然需要使用函数生成器API定义导出的函数。在你的第一个代码位中就是这样的:
export fun = functions.storage.object().onFinalize(...)
如果您不使用此API从index.js构建和导出函数,那么Firebase CLI将找不到任何函数,也不会部署任何内容。如果需要,您可以从所需的文件中使用这个API,但index.js最终必须导出这样构建的函数。
事实上,如果你正在使用这个,而没有在这里显示它,那么我建议你编辑这个问题,以显示所有正在播放的文件的完整、最小的示例。