【问题标题】:Add exceptions on firebase cloud functions triggers在 Firebase 云函数触发器上添加异常
【发布时间】: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


    【解决方案1】:

    无法排除特定子级触发函数。

    如果您发现需要,这通常意味着您已将应分开保存的数据类型组合在一起。

    例如,我希望您的喜欢计数完全在一个单独的节点中,例如/likeCounts/$postId。如果你这样构建它,更新一个新的类似的计数不会重新触发该函数。

    【讨论】:

    • 很好的答案!我想知道为什么我以前没有考虑过!谢谢粉扑!
    猜你喜欢
    • 1970-01-01
    • 2018-09-14
    • 2018-05-17
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2021-12-24
    • 2020-06-21
    相关资源
    最近更新 更多