如何防止当前用户收到通知?

时间:2015-12-22 09:30:43

标签: javascript ios parse-platform cloud-code

我正在创建一个允许用户喜欢和评论其他用户帖子的应用。我使用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");
        }
    }); 
});

});

2 个答案:

答案 0 :(得分:1)

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

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

在发送推送通知之前

答案 1 :(得分:0)

您的云功能从哪里调用?如果你从你的ios代码中调用它,那么在你调用云代码函数之前,只需要用这样的代码加注它:

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