Parse request.object.get ("KEY") gibt immer undefined zurück

8

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 so wie es sollte.

Aber hier kommt das Problem. Ein anderer Entwickler hat mir berichtet, dass etwas nicht in Ordnung ist, weil er jedes Mal "undefiniert" wird, wenn er in CloudCode request.object.get('KEY') aufrufen möchte. Dieser Entwickler verwendet genau die gleiche Codebasis wie ich.

Also habe ich beschlossen, 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.

Was ist das Problem? Wir verwenden CloudCode, und hier ist Beispielcode (in Javascript) einer beforeSave-Methode:

%Vor%

Und jedes Mal, wenn request.object.get('KEY') undefined zurückgibt, für jeden Schlüssel, den ich vorher im iOS-Code definiert habe, bevor ich PFObject hochlade. Beachten Sie, dass mit meinem persönlichen Konto alles in Ordnung ist ...

Ich habe diesen -Thread bereits 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 mit Ausnahme meines definiert ist.

BEARBEITEN 1

Ich habe mir auch kurz vor dem Hochladen das Aktivitätsobjekt angeschaut, und dort sind alle Felder richtig eingestellt.

BEARBEITEN 2

Nach dem vollständigen Entfernen des Cloud-Codes werden die Objekte korrekt in Parse hochgeladen, wobei alle Felder so aussehen, wie sie über den iOS-Client festgelegt wurden. Es scheint also, dass etwas mit dem Cloud-Code von Parse nicht stimmt, aber sobald ein Objekt den Cloud-Code durchläuft, verliert es alle seine Felder.

    
Eric Schanet 19.09.2015, 11:00
quelle

1 Antwort

8

Endlich konnte ich das lösen. Dies ist definitiv ein Fehler in Parse's Javascript SDK. Ich habe die Javascript SDK-Version in der Datei global.json zurück auf die Version "1.4.2" anstatt auf "neuste Version" geändert, diese in den Cloudcode-Ordner hochgeladen und alles ist wieder normal geworden.

Sie können auch andere Versionen testen, vielleicht funktioniert v1.5.0 auch, aber sobald ich herausgefunden habe, dass v1.4.2 gut funktioniert, habe ich keine neueren Versionen getestet.

BEARBEITEN

Ich habe also entdeckt, dass Parse in ihrem Kommandozeilen-Tool etwas geändert haben muss. Es scheint, dass die Datei global.json nicht mehr vorhanden ist, wenn Sie Ihren CloudCode-Ordner mit der neuesten Version des Befehlszeilentools erstellen. Sie können es jedoch manuell erstellen und den vollständigen Ordner in Ihre Parse-App hochladen.

So sieht mein CloudCode-Ordner aus, zum Beispiel: CloudCode-Ordner enthält drei Unterordner

• Cloud - enthält Cloud-Code-Dateien

• config - enthält die Datei global.json

• public - enthält die Datei index.html

Die Datei global.json enthält diese Codezeilen:

%Vor%     
Eric Schanet 21.09.2015, 22:17
quelle