我正在使用firebase工具CLI来部署firebase函数。我正在尝试使用firebase deploy --only functions:functionName
部署一个函数。
这是在现有项目中。这些函数位于/functions/index.js
中。
直到几个小时前,部署工作还很顺利。但现在,当我尝试部署一个新功能时,我得到了以下信息:
i deploying functions
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
+ functions: required API cloudbuild.googleapis.com is enabled
+ functions: required API cloudfunctions.googleapis.com is enabled
i functions: preparing functions directory for uploading...
+ Deploy complete!
但很明显,它甚至没有上传任何内容或部署任何功能。尝试部署现有功能时,我得到了The following functions are found in your project but do not exist in your local source code:
我有点困惑,这似乎是";断裂";。即使查看项目的git,也没有对任何配置文件或任何内容进行任何更改,只是编写了一个新函数。自上次部署以来,我没有更新任何软件包,并尝试了firebase-tools
的早期版本和最新版本。
以相同的方式将不同的功能部署到不同的项目是成功的。
事实证明,我在项目根目录(而不是/functions目录(中创建了一个名为functions.js的文件,firebase-tools
似乎在寻找该(空(文件的函数,而不是函数目录。奇怪,而且没有任何错误消息,因为我猜它认为要查找的文件确实存在。
在我的例子中,index.js没有正确更新。确保index.js文件导出如下函数:
const functions = require('firebase-functions'); exports.functionName = functions.region('us-central1').onRun(handler);//or any onRequest function