2017-08-11 55 views
0

我想实现一个计数器函数来合计一个帖子上的喜欢数,这里是代码(取自firebase计数器函数示例)我已经修改了一下,怎么做我得到数据库ref(cid,coid)中指定的占位符值?在firebase上获取占位符值onWrite数据库函数

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

回答

2

如果您console.logeventonWrite监听器,你将能够看到在仪表板控制台显示此对象中存储的全部数据。

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

对于您的情况,您应该可以通过event.params.cid访问您的占位符。

我希望它有帮助!

+0

这证明是正确的答案,谢谢! –