【发布时间】:2018-03-01 15:21:01
【问题描述】:
在一个社交应用程序中,我有一个云功能,可以在帖子被点赞时更新“点赞”计数器,也就是说,每当更新以下引用时:
/likes/{postId}/{userid}
'countOfLikes' 写在通配符 {userId} 的同一级别:
exports.countLikeChange = functions.database.ref('/likes/{postId}/{userid}').onWrite(event => {
const collectionRef = event.data.ref.parent;
var counterRef = collectionRef.child('countOfLikes');
return collectionRef.once('value').then(messagesData => counterRef.set(messagesData.numChildren() - 1));
});
在我当前的代码中,当用户喜欢一个帖子时,首先触发该函数更新countOfLike,然后触发相同的函数执行相同的操作...
有没有办法指定排除项,以便在 {userId} == 'countOfLikes' 时不会触发该函数?
我知道我可以使用 onCreate 代替 onWrite,但您必须知道,在我的应用中,一位用户也可以删除他的“赞”。
【问题讨论】:
标签: javascript firebase google-cloud-functions