我試圖通過解析雲代碼發送推送通知當某一物體已被修改 - 「髒」解析發送通知時,對象修改
我覺得我幾乎沒有,而是因爲我相信收到一個錯誤我正在創建一個新用戶而不是查詢一個。
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 – Subash
您通過這種方式得到的錯誤是什麼? – toddg
我得到這個錯誤 - 「無法創建一個指向未保存的ParseObject的指針」 – mparrish91