这是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,也无法提供有关此解决方案为何有效的完整解释。
npm
我的原件package.json包含:
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
"firebase-admin": "^4.2.1"
然后又跑npm install --save firebase-admin了。这样,所package.json包含的版本"firebase- admin": "^5.4.2"和var db = admin.firestore();编译就不会出错。
npm install --save firebase-admin
"firebase- admin": "^5.4.2"
var db = admin.firestore();