原则上,您的 Cloud Functions 可以使用任何其他 Node.js 模块,就像任何标准 Node.js 服务器一样。但是,由于 Cloud Functions 需要在云中构建您的模块,它需要能够从云中找到这些依赖模块。这就是问题所在。
Cloud Functions 可以从以下任一位置加载模块:
- 任何公共 npm 存储库。
- 任何网络可见的 URL。
- 为您生成的
functions/
目录中的任何firebase init
位置,并上传到firebase deploy
.
在您的情况下,从 的角度来看functions/package.json
,该../server/
目录不属于任何这些类别,因此 Cloud Functions 无法使用您的模块。不幸的是,firebase deploy
它不遵循符号链接,这就是该解决方案不起作用的原因。
我看到两个可能的立即修复:
- 将您的
server/
目录移动到functions/
. 我意识到这不是最漂亮的目录布局,但它是黑客攻击时最简单的修复。然后,functions/package.json
您可以对./server
.
- 在某处的 URL 后面公开您的代码。例如,您可以打包一个
.tar
并将其放在 Google Drive 或 Firebase Cloud Storage 上。或者,您可以使用公共 git 存储库。
firebase deploy
将来,如果遵循符号链接,我会喜欢它。我已经在 Firebase 的内部错误跟踪器中提交了一个功能请求。