6

这个当函数是Node.js的index.js文件的标题:admin.firestore不尝试使用谷歌云功能与node.js的

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

这是Node.js的功能听公司的FireStore变化:

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" 
    }, 

当我尝试做一个 “火力部署”命令这是我得到的错误:

Error: Error occurred while parsing your function triggers.
TypeError: admin.firestore is not a function

askFirebase

+0

也许你没有最新版本的SDK。通过在项目的函数目录中运行'npm install firebase-functions @ latest --save',按照[文档](https://firebase.google.com/docs/functions/get-started#set_up_and_initialize_functions_sdk)中的描述获取它。 –

+0

我不认为你需要依赖关系中的firestore?我有一个工作的firestore/firebase函数代码片段,只有两个依赖“firebase-admin”:“^ 5.4.1”和“firebase-functions”:“^ 0.7.0”' – DauleDK

+0

@BobSnyder我跑了'npm install firebase-functions @ latest --save'和'npm install -g firebase-tools'然后再次尝试'firebase deploy',但仍然出现相同的错误消息。我有firebase版本3.13.1和npm版本3.10.10。 –

回答

9

我能够重现错误和蛮力力的解决方案。我对npm了解不多,不能提供此解决方案工作原因的完整说明。

我原来package.json包含:

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

由于recommended in the documentation,我跑在功能文件夹这两个命令:

npm install -g firebase-tools 
npm install [email protected] --save 

我也试过:

npm install --save firebase-admin 
npm upgrade 

我多次获得这些错误消息:

+-- UNMET PEER DEPENDENCY [email protected] 
npm WARN [email protected] requires a peer of [email protected]~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();编译没有错误。