F: Das bedeutet aber auch, dass ich die Geschäftslogik in das Front-End der Angular2-Web-App einfügen müsste, oder ?
Ja. Wenn es nicht von einem Server unterstützt wird, sollte das Unternehmen irgendwo implementiert werden.
Nach der Übernahme von Google entwickelte sich Firebase zu einer Plattform für Entwickler mobiler Apps, die es sich nicht leisten konnten (oder müssen), ein eigenes Backend bereitzustellen. Während die meisten Dienste ziemlich transversal sind: Speicher-, Anmelde-, Analyse- und Nachrichtendienst, bietet es zwar auch Cloud-Funktionen (Art von Lambdas), mit denen einige geschäftsspezifische Regeln ausgeführt werden können. Für Unternehmensanwendungen oder große Anwendungen mit einer komplexen Domäne und Geschäftslogik ist diese Art der Unterstützung jedoch unzureichend.
Wie Sie vielleicht erraten haben, befreit uns Firebase nicht davon, dass das Backend für das Hosten und Ausführen geschäftsspezifischer Vorgänge vorgesehen ist.
F: Wenn ich eines Tages ein Front-End für mobile Apps erstellen möchte, muss ich den Geschäftslogikcode duplizieren.
Nicht unbedingt. Wenn die Web-App auf Angular basiert, können Sie mit plattformübergreifenden Funktionen wie NativeScript möglicherweise die Webkomponenten, Bibliotheken, Dienstprogramme, Modelle usw. wiederverwenden. Ich habe mich nicht mit dem Thema befasst, daher kann ich Ihnen keine vollständige Kompatibilität garantieren. Der Schlüssel liegt in TypeScript . Sowohl Angular als auch NativeScript erfordern, dass wir auf TS codieren.
Die Sache ist dann, wo das Javascript für seine Verteilung und Versionierung gehostet werden soll . Ein Wort CDN .
F: Ich denke, die Alternative wäre, ein Backend zu erstellen, das die Geschäftslogik enthält und Firebase für die Datenspeicherung verwendet, aber das scheint etwas seltsam (könnte ich nicht einfach ein ORM oder etwas direkt in meinem Backend verwenden, um dasselbe zu erreichen Ergebnis ohne viel mehr Arbeit?)
Einige Überlegungen.
Einerseits ist das Hosten, Ausrollen, Verwalten und Verwalten einer Datenbank keine Kleinigkeit. Ganz zu schweigen von Sicherheit, Skalierbarkeit, Verfügbarkeit usw. Es ist also interessant, einen DB-Anbieter zu haben, der sich um diese Dinge kümmert. Es ist heutzutage keine verrückte Idee, unsere Datenbank irgendwo in der Cloud zu haben. Natürlich würde ich dies nicht vorschlagen, wenn wir die Middleware und die Backends für eine Bank implementieren würden. Dies kann jedoch für die Sitzung des Kunden, die Benutzerprofile, die Einstellungen und diese Art von Daten, die normalerweise auf der Client-Seite gespeichert sind, oder für Daten, die uns nicht interessieren, sinnvoll sein.
Auf der anderen Seite ist es aus einem einfachen Grund nützlich, unser Backend zu haben, nämlich die Entkopplung .
Anstatt unsere Kunden an alle Arten von Diensten zu koppeln, die wir nicht verwalten und steuern, stellen wir eine serverseitige Anwendung bereit, von der aus wir uns um diese Dinge kümmern, damit sich unsere Kunden nicht um Probleme wie das Herunterfahren von Diensten oder das Unterbrechen von Diensten kümmern müssen Änderungen. Darüber hinaus gewinnen wir an Einfachheit, da unser Backend wie eine Fassade wirkt.
F: Wie strukturieren Menschen diese Art von Apps normalerweise, wenn sie beispielsweise Firebase nutzen möchten?
Es ist von Projekt zu Projekt sehr unterschiedlich. Zum Beispiel verwenden wir Firebase + Backend.
Firebase DB zum Freigeben von Daten zwischen Gerätekonten-Sitzungen . Auch als Änderungsprotokoll senden Clients die Schreibvorgänge an das Protokoll, das später synchronisiert wird, wenn unser Backend vorübergehend nicht verfügbar ist.
Firebase Cloud Messages bietet uns Upstream- / Downstream-Push-Benachrichtigungen und -Themen. Wir nutzen den Service für den Austausch von Pub- / Subnachrichten.
Firebase-Analyse Hauptsächlich für Metriken.
Backend für alles, was eng mit dem Geschäft zu tun hat