Ios 让用户使用parse.com关闭不同的通知类型';s云代码
第一次在这里发布,所以请容忍我。我对parse.com的云代码一窍不通,因此需要一些帮助 我收到了一个使用云代码的afterSave推送通知,但我需要一种允许用户订阅/取消订阅不同类型通知的方法。我目前尝试的方法是在parse user表中为不同类型的通知存储bool值,但在云代码中获取该值时遇到了困难。这是我的云代码:Ios 让用户使用parse.com关闭不同的通知类型';s云代码,ios,parse-platform,push-notification,parse-cloud-code,Ios,Parse Platform,Push Notification,Parse Cloud Code,第一次在这里发布,所以请容忍我。我对parse.com的云代码一窍不通,因此需要一些帮助 我收到了一个使用云代码的afterSave推送通知,但我需要一种允许用户订阅/取消订阅不同类型通知的方法。我目前尝试的方法是在parse user表中为不同类型的通知存储bool值,但在云代码中获取该值时遇到了困难。这是我的云代码: Parse.Cloud.afterSave("Comment", function(request){ var comment = request.object;
Parse.Cloud.afterSave("Comment", function(request){
var comment = request.object;
var fromUser = request.user;
var onIdea = comment.get("ideaPointer");
var ideaOwner = onIdea.get("owner");
var getNotification = ideaOwner.get("getCommentNotifications");
var message = fromUser.getUsername() + " commented on your idea.";
if (getNotification){
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.equalTo("user", ideaOwner);
Parse.Push.send({
where: pushQuery,
data: {
alert: message,
ideaId: onIdea.id
}
});
}
});
以下是保存注释时打印到日志中的错误:
Result: TypeError: Cannot call method 'get' of undefined at main.js:6:34
这是它遇到问题的一行,因为在我将它与if语句一起添加之前,它正在工作:
var getNotification = ideaOwner.get("getCommentNotifications");
getCommentNotifications是用户表中的bool值
我也不确定我的if语句写得是否正确:
if (getNotification){}
我还验证了我正在测试的ideaOwner的getCommentNotifications值不是空的
任何关于此问题的帮助或关于允许用户订阅/取消订阅不同通知类型的更好方法的想法都将不胜感激。必须获取这些指针的另一端。如果它们确实是指针,那么您可以将它们视为未完全初始化的对象,因此
Parse.Cloud.afterSave("Comment", function(request){
var comment = request.object;
var fromUser = request.user;
var onIdea = comment.get("ideaPointer");
onIdea.fetch().then(function(onIdeaObject) {
var ideaOwner = onIdea.get("owner");
return ideaOwner.fetch();
}).then(function(ideaOwnerObject) {
var getNotification = ideaOwnerObject.get("getCommentNotifications");
if (getNotification) {
var message = fromUser.getUsername() + " commented on your idea.";
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.equalTo("user", ideaOwnerObject);
return Parse.Push.send({ where: pushQuery, data: { alert: message, ideaId: onIdea.id } });
}
});
});
非常感谢你!只需将pushQuery.equalTo更改为引用ideaOwnerObject,而不是ideaOwner。在那之后,它工作得很好。