关于Firebase的问题:
我对Firebase/node.js/npm比较陌生。
我目前正在尝试用Firebase为一个大学项目构建一个移动的应用程序后端。我使用node.js并在本地编写而不是测试我的函数,然后使用Firebase CLI和“firebase deploy”部署它们。一切都很顺利,直到我一个小时前开始工作。我的代码中有一个小错误,我很容易就能修复。在同一个“部署周期”中,Firebase CLI向我展示了一个可用的Firebase工具更新,建议我使用
npm install -g firebase-tools
这就是我所做的,也是我的悲剧开始的地方。然后建议CLI卸载/重新安装
npm uninstall -g @google-cloud/functions-emulator
npm install -g @google-cloud/functions-emulator
于是我就这么做了。然后我尝试部署我的函数(从本地index.js),收到了以下警告:
错误:Firebase配置变量不可用。请使用最新版本的Firebase CLI部署此功能
我使用npm install -g firebase-tools
来更新firebase CLI,但没有任何变化。
我认为这将是一个好主意,只是备份我的旧项目,并在一个新的文件夹中初始化一个新的项目,并将其连接到我现有的FB-Project,然后将我的旧index.js的内容复制粘贴到新项目文件夹中的项目。尝试部署这个新项目时,我收到了大量关于我的代码的错误和警告,比如:
18:4 error Expected catch() or return promise/catch-or-return
还有更多,尽管我的编码函数以前工作得很好。
所以我决定最好尝试用旧项目修复这个错误。
有没有人建议在这种情况下该怎么做,或者在哪里可以找到这些神秘的firebase配置变量?我在网上找不到任何解决问题的方法。我真的很感激任何形式的帮助支持,因为我不知道该怎么做,我没有从我的大学做这件事的支持…
4条答案
按热度按时间o4hqfura1#
有关配置变量的错误消息要求您更新Firebase CLI,您已更新。这也没什么(您可以忽略有关@google-cloud/functions-emulator的警告。
创建新项目时,您可能选择在项目创建过程中使用ESLint。提示会说:
你想使用ESLint来捕捉可能的bug并强制样式吗?
这是Firebase CLI自3.17.0版以来的一个非常新的功能,您以前可能没有使用过ESLint。
您看到的这些新错误是ESLint告诉您代码中存在潜在问题。Firebase团队强烈建议您接受这些警告和错误的建议并解决它们,以便您的代码具有更少的问题。
如果您现在无法使用ESLint,您可以重新创建项目,但在系统提示时选择不以使用ESLint。或者,您可以通过编辑
firebase.json
文件并删除运行lint命令的预部署脚本,在当前项目中禁用它。gz5pxeao2#
在某些情况下,你可能想扔在毛巾所有在一起,但只是想忽略掉毛的时刻,直到你可以解决的问题,它是有。
https://masteringjs.io/tutorials/eslint/ignore#:~:text=Disabling%20ESLint%20With%20a%20Comment&text=If%20you%20put%20%2F*%20eslint,the%20top%20of%20a%20file.
使用
.eslintignore
可以跳过整个文件,这些文件可能还没有准备好通过eslint,但您仍然需要部署以进行测试或其他操作。qhhrdooz3#
看起来有两件事在发生
1)你可能没有最新的firebase-functions,这就是导致配置变量错误的原因。再次部署之前,请尝试在functions文件夹中运行以下命令:
2)“Expected catch()or return”是一个linter错误,意味着你没有返回你的promise链。(这将导致部署的函数中出现超时错误)。所以你应该修改你的代码看起来更像:
ru9i0ody4#
只需关闭
firebase.json
文件中的预部署命令:这条线删除lint选项:只有构建:
注意:所有EsLint linting优点都将被禁用,并且您的项目不会因任何错误而被linted