2017-12-09 1 views
0

mit dem folgenden SchemaWie Schema mit Wolke-Code before

{ 
date: '2017-12-09', 
amount: 10.00, 
notify: true, 
isInvoiceSent: false 
} 

Angenommen, ändern, dass ich die Spalte isInvoiceSent fallen entschieden, wie kann ich Wolke-Code und before diese Spalte fallen zu lassen?

Parse.Cloud.beforeSave("Invoice", function(request, response) { 
    delete request.object.isInvoiceSent # <-- won't work 
    response.success(); 
}); 

Der Hauptgrund ist, weil nach Spalte Schöpfung zu deaktivieren erhalte ich:

Permission denied for action addField on class Invoice

+0

Ich empfehle die Verwendung eines Server-Layers, um die Erstellung von Objekten zu verwalten, um Probleme wie diese zu vermeiden. Ich stelle mir vor, nur die Spalte vorübergehend hinzufügen, utnil Clients sind aktualisiert, ist keine Option, da nicht alle App-Benutzer aktualisieren werden. Wenn Sie diese Funktion mit einer Cloud-Funktion ausgeführt hätten, hätten Sie ein nahtloseres Update. –

+0

@JakeT. wie ein PHP-Backend, das vor Parse läuft? Prost –

+1

Nein, Entschuldigung, ich meine direkt auf Ihrem Parse-Server. Angenommen, Sie haben eine Android- und eine iOS-App. Anstatt dass jede einzelne App einen Geschäftslogik-Code hat, der ein neues Rechnungsobjekt erstellt und auf Ihrem Analyse-Server speichert, haben Sie eine Cloud-Funktion namens createInvoice, die notwendige Parameter aufnimmt, das Objekt erstellt/speichert und an das System zurückgibt Klient. Auf diese Weise müssen Änderungen an der Geschäftslogik nur an einer Stelle vorgenommen werden, ohne dass die Benutzer Updates von Ihren Benutzern vornehmen müssen. Offensichtlich kann nicht alles, d. H. Wenn Sie neue Informationen benötigen. Aber es löst viele Probleme bei der Aktualisierung von Apps. –

Antwort