Vielleicht sollte meine Frage neu formuliert werden: Wie korrigiere ich diese Verhaltensweisen in CRUD, worüber Firebase sich auszeichnet?Wie verwende ich Firebase, um automatische serverseitige Berechnungen zu verarbeiten?
Ich bekomme, dass CRUD gut funktioniert. Ich sehe auch, wie das Firebase-deklarative Sicherheitsmodell mir ermöglicht, die richtige Sicherheit serverseitig zu gewährleisten, wo es eigentlich sein sollte.
Sagen wir, ich habe einen Abonnement-Service. Jedes Mal, wenn sich eine Person für eine Dienstleistung anmeldet, muss automatisch eine "fällige" Werbebuchung zu ihrem Konto hinzugefügt werden. In einfachen Worten:
/users/john
/services/goodstuff
Also für goodstuff
anmelden john
kann, könnte ich ihn für 30 Tage eingelassen, ohne zu bezahlen, aber wird ihn daran erinnern, wenn 30 Tage ist, „Hey, Sie müssen Sie zahlen oder sonst verlieren Sie Ihr Abonnement für Goodstuff. "
Mit einem Server-Back-End, das würde ich POST
-/services/goodstuff/members
, zum Beispiel haben einen Teil des POST
Handler hinzufügt eine Position zu john
‚s Konto„Sie schulden“, um sicherzustellen, dass niemand goodstuff
ohne als beitreten kann markiert werden geschuldet.
In einer Firebase BaaS-App, in der diese serverseitigen Logiken nicht existieren, wie würde ich die App umgestalten, um das gleiche effektive Verhalten zu erhalten?
Oh, das ist sehr elegant. Anstatt den Server berechnen zu lassen, was hinzugefügt und hinzugefügt werden soll, sagen Sie: "Lassen Sie den Client es berechnen, aber erzwingen, dass es nur eine Antwort haben kann." Das ist wirklich sehr elegant, ich mag es. – deitch
Persönlich würde ich nicht die Nummer "30 * 24 * 60 * 60 * 1000" in den Sicherheitsregeln setzen, eher abstrakt als Teil der Daten über Root abgerufen, aber das ist wirklich nett. – deitch