【发布时间】:2016-09-08 14:15:08
【问题描述】:
当某个对象被修改时,我正在尝试通过 Parse Cloud Code 发送推送通知 - “脏”
我想我快到了,但收到一个错误,因为我认为是在创建一个新用户而不是查询一个。
Parse.Cloud.beforeSave("Fact", function(request, response) {
var dirtyKeys = request.object.dirtyKeys();
for (var i = 0; i < dirtyKeys.length; ++i) {
var dirtyKey = dirtyKeys[i];
if (dirtyKey === "isValid") {
//send push
// Creates a pointer to _User with object id of userId
var targetUser = new Parse.User();
// targetUser.id = userId;
targetUser.id = request.object.userID;
var query = new Parse.Query(Parse.Installation);
query.equalTo('user', targetUser);
Parse.Push.send({
where: query,
data: {
alert: "Your Fact was approved :)"
}
});
return;
}
}
response.success();
});
我发现 this post 与我的问题有关。我现在的问题是如何将用户查询集成到我的 beforeSave 块中。理想情况下,我会为用户查询创建另一个函数并将其放在我的 beforeSave 块中。
**5/14 更新 我接受了@toddg 的建议并修复了之前的保存。这是我正在尝试做的事情和新错误的更清晰的图片。
【问题讨论】:
-
通知代码最好放在保存块之后。在上面的代码中 response.success() 可能会在发送推送通知之前运行。还有回报;阻止它通知 response.success() 或 response.error()。我建议将通知内容移至 afterSave
-
顺便问一下你遇到了什么错误?
-
我收到此错误 - “无法创建指向未保存 ParseObject 的指针”
标签: javascript ios parse-platform parse-cloud-code