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