Firebase CLI:指定了以下过滤器,但与项目中的任何功能都不匹配

时间:2018-07-31 12:21:36

标签: firebase google-cloud-functions firebase-cli

我在项目中使用List[Any],并且有很多,所以当我运行常规Firebase Cloud Functions时,我超出了配额,因此,一种选择是仅部署由使用this web page中提到的firebase deploy。此方法仅适用于以firebase deploy --only functions:function1开头的函数,但是当我尝试将其与如下函数一起使用时:

exports.funcName

它不起作用。我使用function doesNotStartWithExports() { // Does something. } ,但得到以下输出:

firebase deploy --only functions:doesNotStartWithExports

问题:如何部署不以导出开头的Firebase功能?

4 个答案:

答案 0 :(得分:1)

我实际上找到了解决方案,它是通过部署以exports开头的功能之一并使用不是以exports开头的功能为例的,例如:

function doesNotStartWithExports() {
    // I want to deploy only this function but I can't
}

exports.anotherFunction = functions.https.onRequest((request, response) => {
    // This functions uses the one that I want to deploy.
    doesNotStartWithExports()
})

要更新doesNotStartWithExports,请使用以下命令: firebase deploy --only functions:anotherFunction

答案 1 :(得分:1)

我还发现,如果您将某个常规函数导出到与Firestore函数同名的位置,则会出现此错误:

export myFunction() {
  // do somethig here
} 

exports.myFunction = functions.https.onCall((data, context) => {
  // function
})

将它们中的任何一个重新命名为唯一名称即可解决该问题。

答案 2 :(得分:0)

这有效: enter image description here

但这不起作用(函数前面的额外行) enter image description here

答案 3 :(得分:0)

我在尝试删除一些已弃用的函数时遇到了非常相似的错误:

firebase functions:delete mymodule-helloWorld --region us-central1

输出:

Error: The specified filters do not match any existing functions in project my-firebase-project.

事实证明,如果我将命名空间/分组(模块)函数中的“-”替换为“.”,错误就会消失。奇怪。

firebase functions:delete mymodule.helloWorld --region us-central1

输出:

? You are about to delete the following Cloud Functions:
    mymodule-helloWorld(us-central1)
  Are you sure? Yes
i  functions: deleting function mymodule-helloWorld(us-central1)...
✔  functions[mymodule-helloWorld(us-central1)]: Successful delete operation.

解决方案改编自此github thread