Vielleicht sollte meine Frage neu formuliert werden: Wie überarbeite ich diese Verhaltensweisen in CRUD, worüber Firebase sich auszeichnet?
Ich verstehe, dass CRUD gut funktioniert. Ich sehe auch, wie das Firebase-deklarative Sicherheitsmodell mir ermöglicht, die richtige Sicherheit serverseitig zu gewährleisten, wo es existieren sollte.
Sagen wir, ich habe einen Abo-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:
%Vor% So john
kann sich für goodstuff
anmelden, ich kann ihn 30 Tage lang ohne zu bezahlen reinlassen, werde ihn aber daran erinnern, wenn 30 Tage vergangen sind, "hey, du musst zahlen oder du verlierst dein Abo Goodstuff. "
Bei einem Server-Backend würde ich POST
auf /services/goodstuff/members
setzen, zB wenn ein Teil des POST
-Handlers eine "you owe" -Eintragszeile zu john
s Konto hinzufügt, um sicherzustellen, dass niemand kann goodstuff
beitreten, ohne als "schuldig" gekennzeichnet zu sein.
Wie würde ich in einer Firebase BaaS-App, in der diese serverseitigen Logiken nicht existieren, die App so umgestalten, dass das gleiche effektive Verhalten erzielt wird?
Update (10. März 2017) : Während die Architektur, die ich unten skizziert habe, immer noch gültig ist und Firebase mit jeder vorhandenen Infrastruktur kombiniert werden kann, hat Firebase gerade Cloud-Funktionen für Firebase , mit denen Sie JavaScript-Funktionen auf den Servern von Google als Reaktion auf Firebase-Ereignisse ausführen können (z. B. Datenbankänderungen, Anmeldung von Benutzern und viel mehr).
Eine mögliche Lösung (ungeprüft, tut mir leid; aber es sollte die richtige Idee sein):
%Vor%Dies würde erfordern, dass, wenn sich jemand zum ersten Mal anmeldet und seine Benutzer / Einträge initialisiert, sie ein Fälligkeitsdatum in den nächsten 30 Tagen schreiben müssten. Und dann, wenn auf irgendeinen Dienst zugegriffen wird, würde dieses Fälligkeitsdatum als nicht bestanden bestätigt werden.
Eine andere Möglichkeit besteht darin, einen kleinen Back-End-Dienst zu starten, um diese Art von Geschäftslogik zu verarbeiten. Firebase zeichnet sich durch das Schützen, Speichern und Synchronisieren von Daten aus. Aber wenn Sie eine komplizierte Geschäftslogik haben, sollten Sie darüber nachdenken, einen kleinen Back-End-Prozess in Gang zu setzen. Firebase hat eine REST API sowie Node.JS und JVM Kunden, also Es ist sehr einfach, einen eigenen Backend-Code zu verwenden, der in Firebase integriert ist.
Tags und Links firebase