当我尝试部署我的功能时,firebase抱怨这个:
count==2
但不是这样:
const admin = require('firebase-admin');
const functions = require('firebase-functions');
const C = require('../both/constants.js');
exports.myFunc = functions.database.ref('aRef').onCreate((event) => {
// blah blah
}
Error: Error parsing triggers: Cannot find module '../both/constants.js'
为什么?
更新:看起来会发生这种情况,因为函数在运行时才会查找依赖项。这当然是一个问题,因为仍然需要依赖。我应该提一下我的项目如下:
const admin = require('firebase-admin');
const functions = require('firebase-functions');
// This is the invite that goes to organizations.
exports.myFunc = functions.database.ref('aRef').onCreate((event) => {
const C = require('../both/constants.js');
}
更新2 现在,我正在将我的堆栈完全移至Firebase功能,我又回到了这个问题上。需要发布模块才能在函数内工作。对于发生在这个psot上的任何人来说,仅供参考。
答案 0 :(得分:4)
不支持将函数代码放在functions
目录以外的任何位置。注意当你部署它时说:
i functions: preparing functions directory for uploading...
i functions: packaged functions (34.06 KB) for uploading
✔ functions: functions folder uploaded successfully
只关注functions
及其所有子文件夹。
如果我部署的代码需要functions
之外的代码,我也会在控制台中看到“找不到模块”错误。
答案 1 :(得分:0)
我将模块包含在另一个存储库中,希望将其包含在我的Firebase函数中。我的解决方案是使用git sparse-checkout将所需的文件夹放入\ functions \文件夹中。然后,我将脚本添加到package.json中,以获取最新代码。 How do I clone a subdirectory only of a Git repository?
也许有帮助。