【问题标题】:How to prevent current user get notified?如何防止当前用户收到通知?
【发布时间】:2023-03-06 02:04:01
【问题描述】:

我正在制作一个允许用户喜欢和评论其他用户帖子的应用。我使用 Parse 作为我的后端。每次他们的帖子喜欢或评论时,我都可以通知用户。但是,如果当前用户喜欢或评论他们自己的帖子,则该当前用户仍会收到通知。我怎样才能防止这种情况发生?

这是我使用的js代码:

Parse.Cloud.afterSave('Likes', function(request) {

// read pointer async
request.object.get("likedPost").fetch().then(function(like){

    // 'post' is the commentedPost object here
    var liker = like.get('createdBy');

    // proceed with the rest of your code - unchanged
    var query = new Parse.Query(Parse.Installation);
    query.equalTo('jooveUser', liker);

    Parse.Push.send({
        where: query, // Set our Installation query.
        data: {
            alert: message = request.user.get('username') + ' liked your post',
            badge: "Increment",
            sound: "facebook_pop.mp3",
            t : "l",
            lid : request.object.id,
            pid: request.object.get('likedPostId'),
            lu : request.user.get('username'),
            ca : request.object.createdAt,
            pf : request.user.get('profilePicture')
        }
    }, {
        success: function() {
            console.log("push sent")
        },
        error: function(err) {
            console.log("push not sent");
        }
    }); 
});

});

【问题讨论】:

    标签: javascript ios parse-platform parse-cloud-code


    【解决方案1】:

    您的云函数是从哪里调用的?如果你是从你的 ios 代码中调用它,那么在你调用云代码函数之前,只需使用以下内容作为前奏:

    if (PFUser.currentUser?.valueForKey("userName") as! String) != (parseUser.valueForKey("userName") as! String)
    

    【讨论】:

    • 由于您在 afterSave 中执行此操作,因此您需要有权访问谁喜欢该帖子以及该帖子属于谁。也许在你的“likes”表中,为“liker”和“postOwner”设置一个字段,并在发送推送之前检查它们是否相同
    • 或者,在将对象保存在 swift 代码中之前,检查 currentUser 是否是被赞帖子的所有者。如果是这样,那么就不要保存它。
    【解决方案2】:

    如果我了解此代码正确位置的上下文, 我建议检查

    if request.user.get("username") != Parse.CurrentUser.get("username")
    

    在发送推送通知之前

    【讨论】:

    • 我试过了,但我得到了错误,我似乎无法检索当前用户的用户名。
    • @EgaSetyaPutra 你能检索到当前用户吗?另外,你如何确定你将推送发送给谁?那是那个查询的目的吗?如果我理解正确,您的代码不是总是将通知发送给喜欢的人,而不是喜欢的人。
    猜你喜欢
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多