当前位置: 首页 > 面试题库 >

尝试在node.js中使用google cloud函数时,admin.firestore不是函数

水铭晨
2023-03-14
问题内容

这是node.js index.js文件的标头:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var db = admin.firestore();

这是用于侦听Firestore更改的node.js函数:

exports.myFoo = functions.firestore
  .document('foo/{bar}')
  .onWrite(event => {
    // do stuff
}

这在package.json文件中:

  "dependencies": {
    "firebase-admin": "^5-.4.2",
    "firebase-functions": "^0.7.1",
    "firestore": "^1.1.6"
  },

当我尝试执行“ firebase deploy”命令时,这是我得到的错误:

错误:解析函数触发器时发生错误。
TypeError:admin.firestore不是函数


问题答案:

我能够重现错误并强行解决。我对此并不了解npm,也无法提供有关此解决方案为何有效的完整解释。

我的原件package.json包含:

  "dependencies": {
    ...
    "firebase-admin": "^4.2.1",
    "firebase-functions": "^0.7.1",
    ...
  },

按照文档中的建议,我在functions文件夹中运行了以下两个命令:

npm install -g firebase-tools
npm install firebase-functions@latest --save

我也尝试过:

npm install --save firebase-admin
npm upgrade

我反复收到以下错误消息:

+-- UNMET PEER DEPENDENCY firebase-admin@4.2.1
npm WARN firebase-functions@0.7.1 requires a peer of firebase-admin@~5.4.2 but none was installed.

我认为firebase-admin需要进行更新,但无法实现。所以我编辑了依赖文件以删除此行:

"firebase-admin": "^4.2.1"

然后又跑npm install --save firebase-admin了。这样,所package.json包含的版本"firebase- admin": "^5.4.2"var db = admin.firestore();编译就不会出错。



 类似资料:
  • 当我尝试初始化Firebase Cloud Firestore时,我遇到了以下错误: 未捕获的类型错误:webpack_imported_module_0_firebase.firestore不是函数 我以前用安装了firebase。

  • 问题内容: 我正在尝试以下代码,但给我一个错误,“ res.send不是函数”。请帮我。 这是代码: 服务器运行正常并且正在连接。正在显示的完整错误是这样的: TypeError:res.send不是Layer.handle的c:\ wamp \ www \ node \ server.js:8:13处的函数[as handle_request](c:\ wamp \ www \ node \ n

  • 服务器运行良好,正在连接。显示的完整错误如下所示: TypeError:res.send不是位于C:\WAMP\WW\Node\Server.js:8:13的Layer.Handle[as handle_request](C:\WAMP\WW\Node\Node_Module\Express\Lib\Router\Layer.js:95:5)位于next(C:\WAMP\WW\Node\Node_

  • 问题内容: 我正在尝试在Angular应用程序中使用Jasmine进行一些单元测试,但遇到一些错误。 错误 规格 App.js 我既没有使用Yeoman也没有使用Karma,因为这是我使用Angular的第一个应用程序。 包含文件 问题答案: 我认为您可能只是对测试依赖项的配置存在问题。没有Karma,我不知道您如何进行测试,但是我想您在某个地方有Jasmine的配置文件,您可以在其中指定要包含的

  • 我在WordPress插件中有一个简单的jQuery脚本,它使用了如下jQuery包装器: 我从WordPress仪表板中调用这个脚本,并在jQuery框架加载后加载它。 当我检查Firebug中的页面时,我总是收到错误消息: TypeError:$不是函数 $(document).Ready(function(){ 我是否应该将脚本包装在这个函数中: 这个错误我已经犯了好几次了,不知道该怎么处理

  • 我有一个功能: