我已根据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的云代码仍然可以正常工作。
关于问题可能是什么的任何想法?
更新
仍然无法找到解决方法,所以我尝试将代码更改为以下内容:
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();
,则没有错误,但不会在成功块中执行任何操作,即log&#34;此行已执行!&#34;。我可以确认日志记录本身是有效的,因为其他console.log(...)
语句可以正常工作。仅供参考:Item
是一个Parse类,其列assignee
和prevAssignee
是指向_User
s的指针。
非常感谢任何帮助。
答案 0 :(得分:1)
query.get(prevAssigneeId, {
useMasterKey: true
success: function(prevAssignee) {
console.log("Fetch prevAssignee: Success");
}
}