nin*_*00b 12 node.js firebase google-cloud-functions google-cloud-firestore
这是node.js index.js文件的标头:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
var db = admin.firestore();
Run Code Online (Sandbox Code Playgroud)
这是用于侦听firestore更改的node.js函数:
exports.myFoo = functions.firestore
.document('foo/{bar}')
.onWrite(event => {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
这是在package.json文件中:
"dependencies": {
"firebase-admin": "^5-.4.2",
"firebase-functions": "^0.7.1",
"firestore": "^1.1.6"
},
Run Code Online (Sandbox Code Playgroud)
当我尝试执行"firebase deploy"命令时,这是我得到的错误:
错误:解析函数触发器时发生错误.
TypeError:admin.firestore不是函数
Bob*_*der 13
我能够重现错误并蛮力解决方案.我不太了解npm,也不能完整解释为什么这个解决方案有效.
我原来package.json包含:
"dependencies": {
...
"firebase-admin": "^4.2.1",
"firebase-functions": "^0.7.1",
...
},
Run Code Online (Sandbox Code Playgroud)
根据文档中的建议,我在functions文件夹中运行了这两个命令:
npm install -g firebase-tools
npm install firebase-functions@latest --save
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
npm install --save firebase-admin
npm upgrade
Run Code Online (Sandbox Code Playgroud)
我反复收到这些错误消息:
+-- 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.
Run Code Online (Sandbox Code Playgroud)
我认为firebase-admin需要更新,但无法实现.所以我编辑了依赖项文件来删除这一行:
"firebase-admin": "^4.2.1"
Run Code Online (Sandbox Code Playgroud)
然后又跑npm install --save firebase-admin了 有了它,package.json包含的版本"firebase-admin": "^5.4.2"和var db = admin.firestore();编译没有错误.
| 归档时间: |
|
| 查看次数: |
5348 次 |
| 最近记录: |