Eine Real-Time-Chat-App mit Google Firebase (baas)

Mobile Geräte wie Smartphone, Tablets oder Laptops können wir heutzutage kaum noch wegdenken. Auch die Programme auf diesen Geräten werden immer schneller und der Nutzer möchte seine Daten und Anwendungen in Real-Time bedienen.

Um nicht bei jedem neuen Programm oder App ein aufwändiges Backend zu entwickeln, nur um dann später festzustellen, dass es doch auch viel einfacher und anders gegangen wäre, haben die zwei großen Klassenprimi im Cloud Computing Bereich, Google und Amazon Web Services, ein Framework bzw. einen Dienst in ihrem Angebot. Dieser Service soll es den Entwicklern deutlich einfacher machen, ihre Apps mit einem schnellen und skalierbaren Backend zu verknüpfen.

Jetzt stellt sich nur noch die Frage, was denn die Dienste sind und was sie können.

Was ist Firebase?

Firebase ist ein Backend as a Service, welches dazu gedacht ist, App-Entwickler zu unterstützen und es den Entwicklern so einfach wie möglich zu machen, moderne Funktionen, wie Authentication und Real-Time Datenabgleich in ihre Apps zu integrieren.

Unterstützt werden dabei selbstverständlich Android und iOS, aber auch C++, Webapps und Unity.

Welche Funktionen bietet Firebase für unsere Chat App an?

Firebase Authentication

Mit dieser Lösung bietet Firebase dem Entwickler eine sehr einfache Möglichkeit User Authentication für seine Application zu implementieren. Dabei muss sich der Entwickler nicht um lästige Funktionen wie das Speichern der User Session oder das sichere Abspeichern des Nutzers kümmern. Die API für die Authentication bietet mehrere einfache Funktionen, welche sich um das Registrieren und das Einloggen, sowie Ausloggen kümmern.

Neben Email und Passwort unterstützt Firebase ebefalls das Authentifizieren mittels Social Media wie Facebook, Google, oder auch Diensten wie Sign In with Apple. Somit kann ein Entwickler auf eine Vielzahl von Authentication Methoden zurückgreifen.

Firebase Firestore

Nachdem ein Nutzer in der App authentifiziert ist, benötigt er schließlich auch Daten, welche in der App angezeigt werden können.

Hier kommt Firestore ins Spiel.

Firestore ist eine document based Datenbank. Es können verschiedene Collections angelegt werden und dort Dokumente gespeichert werden.

Aufgebaut kann ein Dokument aus Daten des Formats: String, Bool, Timestamp, Array, Numer, Reference, Geopoint, Null und Map. Map repräsentiert dabei ein JSON Typ.

Die Firebase API bietet ebenfalls vielfältige Funktionen, um Dokumente von Firestore herunterzuladen, zu updaten oder zu speichern.

Interessant hierbei ist der SnapshotListener. Dieser ermöglicht es, dass die App auf Echtzeitupdates im Firestore hört und bei Bedarf automatisch die neuen Daten updatet.

Neben Dokumenten, können ebenfalls auch die Zugriffsregeln definiert werden. Diese können vielfältig angepasst werden. So kann definiert werden, wer Zugriff auf die Daten hat. Hierbei lassen sich auch die Nutzer aus Firebase Authentication integrieren.

Es lässt sich einstellen das nur authentifizierte Nutzer Zugriff auf den Firestore haben, oder beispielsweise nur die vom eigenen Nutzer erstellten Daten verändert, oder gelesen werden dürfen.

Weitere Funktionen

Neben diesen beiden Hauptfunktionen bietet Firebase noch etliche weitere Funktionen.

So kann man ebenfalls große Dateien, wie Fotos oder Dokumente, im Firebase Storage speichern, oder ein eigenes Machine Learning Modell zu Firebase deployen, um dieses schnell und günstig in eine App zu integrieren.

Doch einige der mächtigsten Funktionen sind die Firebase Functions. Diese sind Funktionen, welche mittels JavaScript entwickelt werden und zu Firebase deployed werden können. Anschließend können diese über einen Request aufgerufen, zeitlich gesteuert oder bei bestimmten Änderungen ausgelöst werden.

So lässt sich beispielsweise eine Funktion erstellen, welche ausgelöst wird, sobald ein neuer Nutzer registriert wurde. Anschließend können alle Daten aggregiert werden. So lässt es sich beispielsweise einstellen, dass sobald ein Nutzer registriert wurde, der Nutzer bei einem anderen Dienstleister, wie beispielsweise Stripe, ebenfalls registriert werden kann. Oder es lässt sich ebenfalls ein ganzes REST Backend mittels Firebase Functions entwickeln.

Fazit

Firebase bietet eine Vielzahl an Möglichkeiten, Real-Time Funktionalität ganz einfach in seine App einzubauen. Dazu stellt Google bzw. Firebase eine umfangreiche Library bereit, welche etliche Sprachen, bspw. Swift, Java, C++ etc. unterstützt. Somit ist es eine relativ allumfassende Plattform, welche viele Funktionen anbietet, die sehr einfach eingebunden werden können. Folglich lohnt sich auf jeden Fall ein Blick in Richtung Firebase, sofern man relativ schnell eine moderne App entwickeln möchte.

Falls noch jemand Interesse hat Firebase auszutesten, kann unter dem folgenden Link das Projekt gerne runterladen und für seinen Firebase Account aufsetzen. Keine Angst, eine Anleitung, wie man das Projekt mit seinem Account verbindet und startet ist auch vorhanden.

Viel Spaß! 🙂

Link zum GitRepo: https://github.com/opitzconsulting/baas-demo

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

%d Bloggern gefällt das: