尝试按照this page上的说明操作,我无法弄清楚如何简单地访问DocumentSnapshot中的数据。
他们并没有真正解释更新onCreate,除了说它与onDelete相同,我无法让它工作。
exports.mFoo = functions.firestore
.document('foos/{key}')
.onCreate((snap, context) => {
const bar = snap.data(); // <-- DOESN'T WORK
console.log(bar); // <-- DOESN'T WORK
return Promise;
});
我收到以下错误:
TypeError:snap.data不是函数 exports.mFoo.functions.firestore.document.onCreate
我确定它非常简单,但我并不是很了解这些东西,而且我已经尝试了大量的东西,没有任何作用。
答案 0 :(得分:3)
原来我遇到了同样的问题before。
在进行任何此类更新之前:
npm install firebase-functions@latest --save
npm install firebase-admin@5.11.0 --save
npm install -g firebase-tools
首先,我必须打开我的package.json文件并删除任何将要更新的依赖项。
这些是我在那里找到的:
"dependencies": {
"firebase-admin": "~5.8.1",
"firebase-functions": "^0.8.1"
},
将依赖项留空并重新运行要安装的命令后,会出现这些:
"dependencies": {
"firebase-admin": "^5.11.0",
"firebase-functions": "^1.0.1"
},
显然,安装和升级不会修复这些依赖项,但如果它们不在那里,它们会添加它们。也许有可能通过键入它来修复它但我不知道要放在那里的版本号。
现在(修改过的)代码可以工作:
exports.mFoo = functions.firestore
.document('foos/{key}')
.onCreate((snap, context) => {
const bar = snap.data(); // now this works
console.log(bar.baz); // <-- before I wasn't referring to anything in the snapshot
return Promise; // I. Promised. Nothing.
});
感谢@Todd Kerpelman指出了正确的方向和@Bob Snyder,因为other post的相同答案也适用于我。