Firebase-升级到6.9.0后无法提供本地功能

时间:2019-05-07 20:53:23

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

firebase-tools6.8.0升级到6.9.0后,我的本地功能停止工作。从应用程序调用它时,出现以下错误消息:

λ firebase.cmd serve --only functions:upload
+  functions: Using node@12 from host.
+  functions: Emulator running at http://localhost:5001
i  functions: Beginning execution of "upload"
!  Error: Cannot find module 'package.json'
Require stack:
- C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:610:15)
    at Function.Module._load (internal/modules/cjs/loader.js:526:27)
    at Module.require (internal/modules/cjs/loader.js:666:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at verifyDeveloperNodeModules (C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:125:32)
    at C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:457:26
    at Generator.next (<anonymous>)
    at C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:7:71
    at new Promise (<anonymous>)
    at __awaiter (C:\Users\MyLocalUsername\AppData\Roaming\npm\node_modules\firebase-tools\lib\emulator\functionsEmulatorRuntime.js:3:12)
!  Your function was killed because it raised an unhandled error.

我已经重新安装了node和npm(包括删除%appdata%文件),删除了所有node_module文件,并使用npm ci重新安装了所有内容,但是问题仍然存在。

firebase.cmd是版本6.0.0

我如何继续?升级之前,我可以提供完全相同的功能,但是即使使用npm i firebase-tools@6.8.0降级的问题现在仍然存在。

当前功能:

const functions = require('firebase-functions');

exports.upload = functions.https.onRequest((req, res) => {
  console.log('Upload initiated')
  return null;
});

1 个答案:

答案 0 :(得分:0)

从firebase-tools 6.7.2升级到6.9.0后,我遇到了同样的问题

这些步骤对我有用,可以回滚到Windows 10上的先前版本:

  1. 卸载功能模拟器
  2. 卸载firebase-tools
  3. 删除功能仿真器配置 <==这是我不知道的步骤
  4. 重新安装Firebase工具的早期版本(6.7.2或6.8.0)

详细步骤:

如果有多个,请切换nodejs版本。我从所有版本中删除了功能仿真器和firebase-tools。需要分别为每个版本进行卸载。

  

nvm使用8.16.0

卸载功能仿真器。更多信息:https://github.com/GoogleCloudPlatform/cloud-functions-emulator/wiki/Troubleshooting

  

npm卸载-g @ google-cloud / functions-emulator

卸载firebase-tools

  

npm卸载-g firebase-tools

删除在“ C:\ Users \您的用户名\ .config \ configstore @ google-cloud \ functions-emulator”中找到的功能仿真器配置文件夹

安装早期版本的firebase-tools。版本在https://www.npmjs.com/package/firebase-tools

中列出
  

npm install -g firebase-tools@6.8.0

我相信您可能只能将功能仿真器与一个nodejs版本一起使用,因此,如果您将其与8.16.0一起安装,则请确保在使用“> nvm use 8.16.0”之前已切换至该版本。开始在本地测试云功能

登录到Firebase

  

firebase登录

在您的项目目录中更新功能和管理软件包

  

npm install firebase-functions @ latest firebase-admin @ latest --save

开始本地测试

  

firebase函数:shell   或使用   火力发球服务

注意:直接使用'firebase emulators:start'调用功能仿真器将无效。

在github上关注此问题以获取更新:https://github.com/firebase/firebase-tools/issues/1258