在 firebase onWrite 数据库函数上获取占位符值



我想实现一个计数器函数来增加帖子上的点赞数,这是代码(取自 firebase 计数器函数示例(我已经稍微修改了一下,如何获取数据库中特定的占位符值 ref(cid、coid(?

exports.countCommentChange = functions.database.ref('/clipComments/{cid}/{coid}').onWrite(event => {
const db = admin.database();
const clipRef = db.ref(`/clips/${cid}`); // <- how do I get CID?
const countRef = clipRef.child('comments');
return countRef.transaction(current => {
if (event.data.exists() && !event.data.previous.exists()) {
return (current || 0) + 1;
}
else if (!event.data.exists() && event.data.previous.exists()) {
return (current || 0) - 1;
}
}).then(() => {
console.log('Counter updated.');
});
});

我的数据库结构如下:

clips: {
clipId: {
name: "my awesome clip",
likes: 0,
comments: 0
}
},
clipComments: {
clipId:
{
commentTimestamp: {
comment: "awesome video!"
}
}
}

如果您从onWrite侦听器console.logevent,您将能够在仪表板控制台上看到此对象中存储的全部数据。

您应该注意到开头有一个名为params的对象。此对象将在导出的函数中存储所有占位符变量。

在您的情况下,您应该能够使用event.params.cid访问您的占位符。

我希望它有所帮助!

最新更新