让用户使用 parse.com 的云代码关闭不同的通知类型
Let user turn off different notification types using parse.com's cloud code
第一次在这里发帖,多多包涵。我在不了解 javascript 的情况下深入研究 parse.com 的云代码,因此我需要一些帮助。
我收到了一个使用 Cloud Code 的 afterSave 推送通知,但我需要一种允许用户从不同类型的通知中 subscribe/unsubscribe 的方法。我目前尝试执行此操作的方法是将 bool 值存储在解析用户 table 中以用于不同类型的通知,但我无法在云代码中获取该值。这是我的云代码:
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是用户table中的bool值。
我也不确定我的if语句是否写对了:
if (getNotification){}
我还验证了我正在测试的 ideaOwner 的 getCommentNotifications 值不为空。
任何有关此问题的帮助或关于允许用户从不同通知类型subscribe/unsubscribe的更好方法的想法将不胜感激。
必须获取那些指针的另一端。如果它们真的是指针,那么你可以把它们当作未完全初始化的对象,所以...
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 } });
}
});
});
第一次在这里发帖,多多包涵。我在不了解 javascript 的情况下深入研究 parse.com 的云代码,因此我需要一些帮助。
我收到了一个使用 Cloud Code 的 afterSave 推送通知,但我需要一种允许用户从不同类型的通知中 subscribe/unsubscribe 的方法。我目前尝试执行此操作的方法是将 bool 值存储在解析用户 table 中以用于不同类型的通知,但我无法在云代码中获取该值。这是我的云代码:
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是用户table中的bool值。
我也不确定我的if语句是否写对了:
if (getNotification){}
我还验证了我正在测试的 ideaOwner 的 getCommentNotifications 值不为空。
任何有关此问题的帮助或关于允许用户从不同通知类型subscribe/unsubscribe的更好方法的想法将不胜感激。
必须获取那些指针的另一端。如果它们真的是指针,那么你可以把它们当作未完全初始化的对象,所以...
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 } });
}
});
});