首页 > 解决方案 > Firebase 云函数设置

问题描述

所以我目前正在尝试在我们的 React 项目中设置云功能,但不幸的是,我没有任何成功。我已经使用 npm install -g firebase-tools 安装了 Firebase CLI。我还更新了 firebase-functions 和 firebase-admin 到最新版本。在这些事情之后,必须在终端“firebase login”中使用命令,但是当我这样做时,这就是我得到的

$ firebase login
internal/modules/cjs/loader.js:1174
      throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
      ^

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: C:\Users\CB\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\is-promise\index.js
require() of ES modules is not supported.
require() of C:\Users\CB\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\is-promise\index.js from C:\Users\CB\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\run-async\index.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename C:\Users\CB\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\is-promise\index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from C:\Users\CB\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\is-promise\package.json.

    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1174:13)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\Users\CB\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\run-async\index.js:3:17)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14) {
  code: 'ERR_REQUIRE_ESM'
}

除了将要求代码更改为使用 import() 之外,我已经尝试了它所推荐的方法,因为我不知道如何让它工作。

标签: node.jsreactjsfirebasenpmgoogle-cloud-functions

解决方案


所以我想我弄清楚了这个问题。安装最新版本的 Node.js 后,我再次运行 npm install -g firebase-tools 并添加了更多内容。为了通过终端进行firebase登录,我不得不输入firebase login --interactive


推荐阅读