[英]Parse query in cloud code not working after migrating to Heroku
我已根據Parse博客上的遷移指南將我的Parse應用程序遷移到Heroku。 除了在我的雲代碼中運行查詢外,事情似乎工作正常。 這是我的代碼:
Parse.Cloud.afterSave("Item", function(request) {
//Parse.Cloud.useMasterKey(); //Uncomenting this line yields the same error
var query = new Parse.Query(Parse.User);
var prevAssigneeId = request.object.get("prevAssignee").id;
var assigneeId = request.object.get("assignee").id;
query.get(prevAssigneeId, { // <-- Results in an error
success: function(prevAssignee) {
console.log("Fetch prevAssignee: Success");
query.get(assigneeId, {
success: function(assignee) {
console.log("Fetch assignee: Success");
// Do something with the fetched users!
},
error: function(object, error) {
console.log("Query for assignee: ");
console.log(error);
}
});
},
error: function(object, error) {
console.log("Query for prevAssignee: ");
console.log(error); //<-- Error is logged here
}
});
});
錯誤
ParseError { code: undefined, message: 'unauthorized' }
這個雲代碼用於在Parse上托管時運行正常。 但是在遷移后我遇到了上述錯誤。 其他不使用ParseQuery的雲代碼仍然可以正常工作。
關於問題可能是什么的任何想法?
UPDATE
仍然無法找到解決方案,所以我嘗試將代碼更改為以下內容:
Parse.Cloud.afterSave("Item", function(request) {
console.log("Executing afterSave");
function findUser(user_id) {
var query = new Parse.Query(Parse.User);
//Parse.Cloud.userMasterKey();
return query.get(user_id);
}
var prevAssigneePromise = findUser(request.object.get("prevAssignee").id);
var assigneePromise = findUser(request.object.get("assignee").id);
var promises = [prevAssigneePromise, assigneePromise];
Parse.Promise.when(promises).then(function(prevAssignee, assignee) {
//Do something here!
console.log("This line was executed!");
},
function(error) {
console.log(error);
});
});
現在我注意到以下行為:
[ ParseError { code: undefined, message: 'unauthorized' }, ParseError { code: undefined, message: 'unauthorized' } ]
Parse.Cloud.userMasterKey();
,沒有錯誤,但不會在成功塊中執行任何操作,即記錄“此行已執行!”。 我可以確認日志記錄本身是有效的,因為其他console.log(...)
語句可以正常工作。 僅供參考: Item
是一個Parse類,其中prevAssignee
assignee
, prevAssignee
為指向_User
的指針。
任何幫助深表感謝。
query.get(prevAssigneeId, {
useMasterKey: true
success: function(prevAssignee) {
console.log("Fetch prevAssignee: Success");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.