Ho migrato la mia app Parse a Heroku come da guida alla migrazione sul blog Parse. Le cose sembrano funzionare bene ad eccezione di eseguire una query nel mio codice cloud. Qui è il mio codice:Query di query nel codice cloud non funzionante dopo la migrazione a 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
}
});
});
Errore codice
ParseError { code: undefined, message: 'unauthorized' }
Questa nube utilizzato per eseguire bene quando ospitato su Parse. Ma dopo la migrazione sto ricevendo l'errore sopra riportato. Gli altri codici cloud che non usano ParseQuery funzionano ancora bene.
Qualche idea su quale potrebbe essere il problema?
UPDATE
ancora in grado di trovare una soluzione per questo quindi ho provato a cambiare il codice di seguito:
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);
});
});
Ora ho notato il seguente comportamento:
- Esegui come è, produce lo stesso errore:
[ ParseError { code: undefined, message: 'unauthorized' }, ParseError { code: undefined, message: 'unauthorized' } ]
- Se non unco mment
Parse.Cloud.userMasterKey();
, non ci sono errori, ma non eseguirai nulla nel blocco di successo o "log" Questa riga è stata eseguita! ". Posso confermare che il logging stesso funziona perché funzionano altre istruzioniconsole.log(...)
.
Cordiali saluti: Item
è una classe di analisi con colonne assignee
e prevAssignee
che sono le colonne che sono puntatori a _User
s.
Qualsiasi aiuto è molto apprezzato.
è necessario utilizzare query.get (prevAssigneeId, { useMasterKey: vero, successo: la funzione (prevAssignee) { – jiawen
@jiawen questo non ha funzionato, ho provato un approccio diverso, che anche didn' t lavoro (vedi il mio codice aggiornato). Qualsiasi idea? – janakagamini