Firebase错误的云功能:"400,不允许更改功能触发类型或事件提供程序"

Tho*_*hoe 27 node.js firebase google-cloud-functions

当我运行时,firebase deploy我收到此错误消息:

functions: HTTP Error: 400, Change of function trigger type or event provider is not allowed
Run Code Online (Sandbox Code Playgroud)

在我的控制器下,firebase deploy我收集firebase deploy,然后在用户登录时将其更新到数据库位置.此代码工作正常:

functions: HTTP Error: 400, Change of function trigger type or event provider is not allowed
Run Code Online (Sandbox Code Playgroud)

这是我的云功能.它旨在在用户登录时触发,这会更新Firebase数据库中的位置.然后,该函数向IBM Watson发送HTTP请求以获取令牌,然后将令牌写入文件.该功能从Node正常运行.触发器似乎是问题所在.

functions: HTTP Error: 400, Change of function trigger type or event provider is not allowed
Run Code Online (Sandbox Code Playgroud)

cre*_*not 52

解决方法基本上是注释或删除您的函数,然后保存函数文件和部署.该功能将在Firebase中删除,但之后您可以插入/取消注释您的功能,它将再次部署.当您使用函数并更改其使用的触发器类型(即HTTP,数据库或身份验证)时,会发生此错误.

首先把它剪掉

firebase functions:delete yourFunction // this can be done via the Firebase Console as well
firebase deploy
Run Code Online (Sandbox Code Playgroud)

然后,在部署("firebase deploy")之后,替换您的触发器

firebase functions:delete yourFunction
Run Code Online (Sandbox Code Playgroud)

使用以下functions:delete命令可以更轻松地完成此操作:

/* exports.yourFunction = someTrigger... */
Run Code Online (Sandbox Code Playgroud)

文档还包含更高级的用例.

  • 嗯,Firebase在控制台中有功能的删除按钮会不会更有意义? (3认同)

Adr*_*ray 9

对于将来偶然发现此问题的用户,Cloud Functions 控制台现在提供了一个删除按钮。 右侧“更多”选项的屏幕截图