Ich habe ein seltsames Problem hier. Ich habe ein Projekt mit Parse.com als Backend erstellt (unter Verwendung von Cloudcode, um einige Dinge zu überprüfen, wenn eine Verbindung zur Datenbank hergestellt wird). Alles funktioniert genauso wie es sollte.Parse request.object.get ("KEY") liefert immer undefined
Aber hier kommt das Problem. Ein anderer Entwickler hat mir berichtet, dass etwas nicht stimmt, weil er jedes Mal "undefiniert" wird, wenn er in CloudCode versucht, request.object.get('KEY')
anzurufen. Dieser Entwickler verwendet genau die gleiche Codebasis wie ich.
Also entschied ich mich, es mir anzuschauen. Während mit meinem Parse-Konto jede Anwendung einwandfrei funktioniert (sogar neu erstellte), scheint mit dem Parse-Konto des anderen Entwicklers keine einzige neue Anwendung, die wir erstellt haben, mit dem exakt gleichen Code zu arbeiten. Und es wird noch seltsamer - es entsteht ein komplett neues Parse-Konto und eine neue Anwendung erzeugt die gleichen Fehler, während mein persönliches Konto und meine Anwendungen weiterhin gut funktionieren.
Also, was ist das Problem? Wir verwenden CloudCode, und hier ist ein Beispielcode (in Javascript) eine before Methode:
Parse.Cloud.beforeSave('Activity', function(request, response) {
var currentUser = request.user;
var objectUser = request.object.get('fromUser');
if(!currentUser || !objectUser) {
response.error('An Activity should have a valid fromUser.');
} else {
response.success();
}
});
Und jedes Mal request.object.get('KEY')
kehrt undefined
, für jeden Schlüssel, den ich zuvor in dem iOS-Code definiert, bevor die PFObject
zu. Beachten Sie, dass mit meinem persönlichen Konto alles in Ordnung ist ...
Ich habe bereits this Thread gesehen, aber das Löschen von ACLs hat den Trick nicht gemacht. request.object.get()
bleibt undefiniert, während request.user
für jeden getesteten Parse-Account außer meinem definiert ist.
EDIT 1
Ich hatte auch einen Blick auf das Aktivitätsobjekt, kurz bevor es hochgeladen wird, und es werden alle Felder richtig eingestellt.
EDIT 2
Nach dem Cloud-Code vollständig zu entfernen, werden die Objekte korrekt analysieren werden hochgeladen, wobei alle Felder der Art, wie sie über die iOS-Client festgelegt wurden. Es scheint also, dass mit Parse's Cloud-Code etwas nicht stimmt, aber sobald ein Objekt den Cloud-Code passiert, verliert es alle seine Felder.
Können Sie zeigen, was in 'request.object' ist? – raina77ow
'request.object' ist nicht definiert, es ist einfach nicht da (für den anderen Entwickler ist mein Konto noch in Ordnung) - aber' request.user' existiert. Wenn das Objekt den Cloudcode nicht übergibt, ist alles vorhanden, alle Felder sind korrekt eingestellt. –