Cloud Functions 模拟器需要安装模块“firebase-admin”

Posted

技术标签:

【中文标题】Cloud Functions 模拟器需要安装模块“firebase-admin”【英文标题】:The Cloud Functions emulator requires the module "firebase-admin" to be installed 【发布时间】:2019-09-27 19:56:01 【问题描述】:

继续尝试让firebase serve 再次工作。我刚刚问了这个问题(得到了很好的答复,谢谢): npm ERR! peer dep missing: firebase-admin@^7.0.0, required by firebase-functions@2.3.1

在执行npm list firebase-admin 时,我现在看到了预期的输出-- firebase-admin@7.3.0

但是firebase serve 仍然不起作用。我明白了:

!  Your requested "node" version "6" doesn't match your global version "10"
...
!  The Cloud Functions emulator requires the module "firebase-admin" to be installed. This package is in your package.json, but it's not available. You probably need to run "npm install" in your functions directory.
i  functions: Your functions could not be parsed due to an issue with your node_modules (see above)

所以firebase serve 仍然看不到firebase-admin 模块。到底是怎么回事?我该怎么办?

【问题讨论】:

看到同样的事情。还尝试了节点 8 和节点 10 并没有工作 ***.com/a/61489395/3273962 【参考方案1】:

现在看来这个问题与您在本地安装的 Node 版本有关。

我不知道我脑海中的答案,但开始查看节点版本。

在您的 functions/package.json 中 - 您可能需要指定要使用的节点版本 (https://firebase.google.com/docs/functions/manage-functions):

// functions/package.json


  "name": ...,
  "scripts": ...,
  "dependencies": ...,
  
  "engines": 
    "node": "10"
  
 

请注意,Node 10 在 Firebase 上仍处于测试阶段。

【讨论】:

设置"node": "8" 也可能是一个选项。 谢谢。我已经安装了nvm,现在使用的是版本 8。我已更改为"node": "8"。我已删除 package-lock.jsonnode_modules 并运行 npm install。我仍然遇到同样的错误。【参考方案2】:

我看到了同样的东西,看起来你可以downgrade your firebase-tools version to 6.8.0

npm install firebase-tools@6.8.0 -g

(我试过了,效果很好)

【讨论】:

谢谢,这行得通。它也解决了我在这里报告的问题:***.com/questions/56026747/… 这对我不起作用。模拟器点击部署到 firebase 的函数,而不是从 localhost 提供它。【参考方案3】:

基本上,这意味着您应该降级到节点 6 或节点 8,而不是 升级到 10(因为您系统中的节点版本是 10,而 Firebase 请求版本 6)。 Firebase 尚不支持 Node 10+,甚至不支持最新版本 12.15.0

【讨论】:

现在 firebase-admin 支持 node 10 及以上版本。他们在他们的 npm 库页面上提到了这一点。 npmjs.com/package/firebase-admin【参考方案4】:

打开终端并进入您的 /myProject/functions 文件夹。

然后,运行npm install

所有必要的模块都应该出现在 node_modules 文件夹中。

【讨论】:

【参考方案5】:

删除node_module 文件夹。 在包含package.json 的目录中再次运行npm install。 这解决了我的问题。

【讨论】:

以上是关于Cloud Functions 模拟器需要安装模块“firebase-admin”的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Cloud Functions 运行时配置无效

在本地测试 Cloud Functions 时,Cloud Firestore 模拟器未运行

Firebase 的 Cloud Functions 无法模拟

访问 Cloud Functions Firebase CLI 本地模拟器中的配置变量失败

如何在 Firebase Cloud Functions 中模拟辅助函数?

如何在 Firebase Cloud Functions 测试中模拟 FCM admin.messaging().sendToDevice() 的实现