Teil 1: BaaS- und Firebase-Funktionen im Überblick

Firebase – die Power aus dem Hintergrund

Dr. Veikko Krypczyk, Olena Bochkor

© Benevolente82/Shutterstock.com

Android-Apps programmiert man am besten in Java und Android Studio. Und das Backend, wie entwickelt man das? Im Idealfall gar nicht! Firebase ist der von Google betriebene Clouddienst, der umfassende Services primär für Android-Apps zur Verfügung stellt. In vielen Fällen kann man auf diesen Backend-Dienst setzen und kommt damit zügig zum Ziel.

Apps für mobile Geräte beziehen Daten und Logik zu einem Großteil aus der Cloud. Sieht man von wenigen komplett offlinefähigen Applikationen ab, nutzen die meisten Apps umfassende Dienste. Diese Art von Cloudservice wird als Backend as a Service (BaaS) bezeichnet. Eine Reihe von Anbietern konkurriert mit im Detail unterschiedlichen, aber in der Funktionsweise ähnlichen Konzepten um die Gunst der Entwickler. In dieser dreiteiligen Artikelserie wird es primär um Firebase gehen. Firebase ist der Clouddienst aus dem Hause Google und damit insbesondere für die Arbeit mit Android-Apps geeignet. Andererseits ist man weder als Android-Programmierer an Firebase gebunden noch beschränkt sich die Unterstützung von Firebase auf dieses Betriebssystem. Es ist sinnvoll, sich mit der Funktionsweise und der Verwendung eines BaaS-Dienstes intensiv zu beschäftigen. Hat man grundlegende Kenntnisse, wie man hier vorgehen sollte, geht die Programmierung der nächsten App mit Sicherheit viel schneller voran. Auch bekommt man ein Gefühl dafür, welcher BaaS-Dienst für die eine oder andere Aufgabe besser geeignet ist.

Artikelserie

  • Teil 1: BaaS- und Firebase-Funktionen im Überblick
  • Teil 2: Authentifizierung mit dem eigenen Konto und Social-Media-Providern
  • Teil 3: Datenspeicherung mit Realtime Database und Firestore

Wir beginnen mit einem allgemeinen Überblick zu den Aufgaben eines BaaS-Dienstes und sehen uns dann die inzwischen so umfangreichen Services von Firebase im Überblick an. Die Teile zwei und drei sind dann der Praxis gewidmet. Themen sind die Nutzung der Services von Firebase von der Authentifizierung bis zur Datenspeicherung.

Backend as a Service – eine Einordnung

In diesem Abschnitt geht es um die Nutzung von Clouddiensten für mobile Apps – vornehmlich im unternehmerischen Umfeld (Mobile Enterprise Computing). In etwas reduzierter Form lassen sich die Funktionen auch auf die Nutzung von Apps für das private Umfeld übertragen. Mobile Enterprise Computing umfasst gewissermaßen drei Infrastrukturbereiche (Abb. 1).

Abb. 1: Technische Infrastruktur für Moblie Enterprise Computing

Abb. 1: Technische Infrastruktur für Moblie Enterprise Computing

Beginnen wir in der Abbildung ganz links: Die Clients sind die mobilen Endgeräte, auf denen die Apps laufen, die Sie für die betriebliche Nutzung programmiert haben. Dabei treffen wir auf eine umfassende Systemvielfalt in Hard- und Software. Blicken wir nun nach ganz rechts. Die IT-Infrastruktur ist meist schon vorhanden. Gemeint sind die Anwendungs- und Datenbankserver, auf denen die Businessapplikationen installiert sind. Dieser Teil der Technik ist oft schon seit Jahren in Betrieb, hat sich bewährt und wurde in der Regel erstellt, als an Mobile Computing in der vorliegenden Form nicht zu denken war. Das Ziel ist es, einen Teil der Services und die Daten für die mobile Nutzung zur Verfügung zu stellen. Im Zentrum unserer Betrachtungen steht die so genannte Middleware.

Hier ist es wie beim Fußball. Für das Schießen der Tore sind die Stürmer verantwortlich. Dazu bewegen Sie sich vorrangig in der gegnerischen Hälfte. Der Spielaufbau beginnt dagegen am eigenen Tor. Die Abwehr hat nach erfolgreicher Verteidigung den Ball erobert. Nun muss dieser zu den Spielern des eignen Angriffs katapultiert werden. Klar könnten Sie den Ball direkt dorthin schießen, doch die Erfolgsquote ist in der Regel nicht berauschend. Viel besser gelingt der Spielaufbau über das Mittelfeld, das die Bälle aus der Abwehr übernimmt und die Angreifer in die Lage versetzt, sich in Szene zu setzen. Unsere Middleware hat eine ähnliche Funktion. Sie sorgt dafür, dass die mobilen Clients einen Zugriff auf die Unternehmens-IT bekommen. Dazu verfügt sie über Schnittstellen auf Client- und auf Serverseite. Zusätzlich bieten sich spezifische, auf das Mobile Computing abgestimmte Systemfunktionen an. Diese Art von Middleware trägt dann den eindrucksvollen Namen Backend as a Service. Dazu gehören u. a. eine Benutzerverwaltung, ein (temporärer) Datenspeicher und gegebenenfalls die Anbindung sozialer Netzwerke für erweiterte Szenarien der Benutzerauthentifizierung.

Typisch ist es, eine solche Middleware in die Cloud auszulagern. Damit ist es eine besondere Form des Cloud-Computings. Beim Cloud-Computing werden bekanntermaßen Hard- und Software als Service über das Internet angeboten. Die Kernelemente des Cloud-Computings werden in drei große Bereiche unterteilt: Software as a Service (SaaS), Platform as a Service (PaaS) und Infrastructure as a Service (IaaS). Unter SaaS versteht man die Nutzung von Anwendungen und Programmen. Das Angebot reicht von einzelnen Applikationen bis hin zur vollständigen Arbeitsumgebung. Bei PaaS kann der Kunde ein komplettes, vorkonfiguriertes System nutzen. Dazu gehören beispielsweise einfache Testsysteme bis hin zur Bereitstellung ganzer Rechencluster, um komplexe Aufgaben zu bearbeiten. Bei IaaS geht es um das Bereitstellen von virtualisierten Betriebsmitteln wie CPUs, Hauptspeicher, Massenspeicher, Netzwerkkomponenten und Ähnlichem. BaaS ist eine Sonderform des Cloud-Computings, die auf die Anforderungen von Apps und mobilen Webanwendungen ausgerichtet ist und oft auch als Zwischenschicht dient.

Anforderungen für eine BaaS-Lösung

Das Rad stetig neu zu erfinden, ist wenig effektiv und ziemlich fehlerbehaftet. Wir als Entwickler freuen uns, wenn wir auf bereits implementierte und erprobte Funktionen zurückgreifen können. So sparen wir Arbeit, Zeit, Geld und vor allem Nerven. Wir sind schneller fertig, und es besteht die Chance auf einen pünktlichen Feierabend. BaaS- bzw. Middlewarelösungen sollten dabei die folgenden Anforderungen erfüllen bzw. Funktionen bereitstellen, denn die Aufgaben gleichen sich zwischen den Systemen.

  • Clientanbindung: Das Ziel besteht darin, auf Clientseite möglichst keine Einschränkungen vorzunehmen. Idealerweise kann die gesamte Breite der bestehenden Technologien angebunden werden. Dabei muss man berücksichtigen, dass die heutige Systemvielfalt enorm ist. Die Programmierschnittstelle (API) muss weitgehend unabhängig von Technologie, Framework und Sprache anzusprechen sein.
  • Usermanagement: Eine umfassende Benutzerverwaltung ist Bestandteil der meisten Applikationen. Diese komplett selbst zu implementieren, ist sehr aufwendig. Neben einer eigenen Benutzerverwaltung sollte idealerweise auch die Anmeldung über Social Media (wie Google oder Facebook) bereitgestellt werden.
  • Integrierter Datenspeicher: Ein integrierter Datenspeicher sorgt für eine Synchronisierung der Daten zwischen den Clients und den Servern. Für eine temporäre Datenspeicherung bzw. bei einem geringeren Datenvolumen ist diese Form bereits ausreichend. Idealerweise können die Daten in strukturierter Form oder alternativ als Dokumente abgelegt werden.
  • Push-Benachrichtigungen: Apps für mobile Endgeräte setzen zunehmend auf eine aktive Ereignisbenachrichtigung zwischen den Clients. Dabei wird der Client aktiv vom Server mit Nachrichten getriggert.
  • Statistiken: Das Backend sollte Möglichkeiten bieten, die Aktivitäten der Benutzer und der von ihnen genutzten Services einfach auszuwerten. Damit bekommen die Entwickler einen Überblick über die Akzeptanz der einzelnen Features.
  • Konnektivität zur Unternehmens-IT: Ähnlich wie die Konnektivität auf der Clientseite muss die Middleware bzw. die Backend-Lösung eine breite Anbindung an die bestehende IT-Landschaft, zum Beispiel an die unterschiedlichsten Datenbanksysteme ermöglichen. Das geschieht in der Regel mithilfe sogenannter Konnektoren, die eine Brücke zwischen Middleware und bestehender IT-Infrastruktur bilden. Der Vorteil besteht darin, dass an den bestehenden IT-Systemen so gut wie keine Anpassungen notwendig sind, da der Zugriff über standardisierte Schnittstellen erfolgt. Ebenso wird auf diese Weise der Zugriff auf den notwendigen Datenausschnitt begrenzt, denn spezialisierte Clientlösungen benötigen in der Regel keinen Zugriff auf die gesamte Datenlandschaft eines Unternehmens. Das ist ein wichtiger Aspekt aus der Sichtweise des Datenschutzes und der Datensicherheit. Der Einsatz von Standardschnittstellen reduziert den Implementierungsaufwand in großem Umfang.

Neben den technischen Prämissen gibt es auch aus einige weitere Aspekte bei der Auswahl eines Anbieters zu beachten. Dazu zählen unter anderem die folgenden:

  • Skalierbarkeit: Die gewählte Technologie sollte in technischer Hinsicht ohne zusätzlichen Aufwand in der Lage sein, auch ein starkes Wachstum des Datenverkehrs und der Anzahl der Service-Anforderungen zu managen. Die Middlewareplattform darf nicht zu einem Nadelöhr werden. Sie soll vielmehr ein Enabler des Business sein. Es wäre doch traurig, wenn Sie bei der Konzeption und der Programmierung alles richtig gemacht haben und die Nutzer sich auf Ihre Software stürzen. Auf einmal gerät das Backend an seine Grenzen und kann die Zahl der Anfragen nicht bedienen. Also bedenken Sie bereits am Anfang eine mögliche Erweiterung.
  • Kosten: Die Kosten müssen transparent und angemessen sein. Niedrige Kosten bei der anfänglichen Nutzung aufgrund eines geringen Volumens dürfen nicht darüber hinwegtäuschen, dass bei Skalierung und produktivem Einsatz ein Vielfaches an Entgelten anfallen kann. Unter Berücksichtigung weiterer Aspekte, wie zum Beispiel technischer Möglichkeiten, Datenschutz usw., ist eine Vergleichsrechnung zwischen Self- und Cloudhosting durchzuführen. Eine pauschale Einschätzung ist nicht möglich. Die letztendliche Entscheidung kann immer nur individuell getroffen werden.
  • Datenschutz und Datensicherheit: Dieses Thema kann nerven, doch seine Relevanz ist nicht wegzudiskutieren. Sie können kein Backend für unternehmerische Zwecke aufsetzen, ohne darüber intensiv nachgedacht zu haben. Sehr lange Zeit wurden die Services für Businessapplikationen nahezu ausschließlich durch ein Hosting im eigenen Rechenzentrum erbracht. Mit dem Trend zur Cloud bekommen datenschutzrechtliche Fragen neues Gewicht. Gegen ein Hosting in der Cloud können Argumente des Datenschutzes sprechen. Beispielsweise dürfen personenbezogene Daten den Verantwortungsbereich eines Unternehmens nur unter strengsten Auflagen, wie Verschlüsselung usw., verlassen. Nicht berechtigte Zugriffe sind unbedingt zu vermeiden. Ob unter Berücksichtigung der strengen Datenschutzvorschriften in Deutschland ein Hosting auf dem Server eines externen Dienstleisters möglich ist, muss individuell beurteilt werden. Eine konservative Einschätzung ist vor dem Hintergrund der gegebenen Rechtsvorschriften notwendig. Letztendlich kann das Selfhosting daher alternativlos sein (Textkasten: „Alles selbst machen: Selfhosting“). Die Backend- beziehungsweise die Middlewarelösung sollte in diesem Fall für die Installation auf einem eigenen Server zur Verfügung stehen.

Alles selbst machenNatürlich gibt es weiterhin Situationen, wo eine Auslagerung in die „digitale Wolke“ keine Lösung ist. Das ist zum Beispiel bei sensiblen Daten und unternehmenskritischen Anwendungen der Fall. Ebenso kann sich ab einer bestimmten Datenmenge das Betreiben eines eigenen Servers lohnen. Der dafür notwendige Aufwand darf jedoch in keiner Weise unterschätzt werden. Dazu zählen u. a.:

  • Kenntnisse in entsprechenden Technologien, beispielsweise Datenbanken, Programmiersprachen, Entwicklungsumgebungen, Administrations- und Überwachungswerkzeugen
  • Aufsetzen der Hardware- und Softwareinfrastruktur, die teilweise sehr komplex ist
  • Organisatorische Aspekte wie Serverstandort, Sicherheit, kontinuierliche Energieversorgung und Ausfallsicherung

Vergessen Sie nicht: Die Backend-Entwicklung ist eine eigene Disziplin und im Regelfall nicht das Kerngeschäft von App-Entwicklern.

Jetzt sind wir in der Lage, uns die Angebote von Firebase näher anzusehen. Starten wir auch hier mit einem generellen Überblick.

Firebase – ein Überblick über die Funktionen

Wenn Sie auf die Webseite von Firebase blicken (Abb. 2), sehen Sie sofort, dass die Funktionsvielfalt von Firebase bereits so umfassend ist, dass es über ein reines Daten-Backend weit hinausgeht.

Firebase Android

Abb. 2: Einen Überblick über die Funktionen von Firebase bekommen Sie auf der Homepage

Cloud Firestore: Dient dem Speichern und Synchronisieren von Daten zwischen Benutzern und Geräten mit Hilfe einer cloudgehosteten NoSQL-Datenbank. Cloud Firestore bietet Livesynchronisation und Offlinesupport sowie effiziente Datenabfragen. Durch die Integration mit anderen Firebase-Produkten können Sie sogenannte serverlose Apps erstellen. Hinweis: Die Funktion befindet sich noch in der Testphase, das heißt, sie ist im Moment noch mit Beta ausgezeichnet.

Authentication: Verwalten Sie Ihre Benutzer einfach und sicher. Firebase bietet mehrere Methoden zur Authentifizierung an, darunter E-Mail und Passwort, Drittanbieter wie Google oder Facebook und die direkte Verwendung Ihres vorhandenen Kontosystems. Erstellen Sie Ihr eigenes User Interface oder nutzen Sie eine vollständig anpassbare Open-Source-Benutzeroberfläche.

Cloud Storage: Dieser dient dazu, benutzergenerierte Inhalte wie Bilder, Audio und Video in einem einfachen Objektspeicher abzulegen. Die Uploads und Downloads werden über das Firebase-SDK aus den Apps für die mobilen Endgeräte erledigt.

Realtime Database: Speichern und synchronisieren Sie mit dieser Funktion Daten zwischen Benutzern und Geräten in Echtzeit mithilfe einer NoSQL-Datenbank, die in der Cloud gehostet wird. Aktualisierte Daten werden in Bruchteilen von Sekunden über verbundene Geräte synchronisiert. Die Daten bleiben verfügbar, wenn Ihre App offline geschaltet wird. Damit kann man offlinefähige Anwendungen umsetzen.

ML Kit: In immer mehr Apps werden Funktionen auf der Basis von Machine Learning (ML) integriert. Firebase bietet Funktionen für ML. Die Funktion ist noch im Betastatus. Es können zum Beispiel eigene Modelle für ML importiert werden. Ebenso stehen fertige APIs zur Nutzung zur Verfügung.

Cloud Functions: Gemeint ist damit, dass man funktionalen Code vom Client in die Cloud auslagert. Dabei muss man keinen eigenen Server verwalten und skalieren. Funktionen können durch Ereignisse ausgelöst werden, die von Firebase-Produkten, Google-Cloud-Diensten oder Dritten mit Hilfe von WebHooks gesendet werden.

Crashlytics: Analyse des Absturzverhaltens der betreffenden App. Alle Informationen zu den App-Crashs werden im Crashlytics-Dashboard angezeigt. Ebenso gibt es die Möglichkeit von Echtzeitbenachrichtigungen. Crashlytics ist damit der primäre Crash-Reporter für Firebase.

Performance Monitoring: Mit Hilfe dieses Tools kann man die Ausführungsgeschwindigkeit der Apps auf den Endgeräten der Benutzer überprüfen und gegebenenfalls Performanceprobleme diagnostizieren. Dazu können Sie Ablaufverfolgungen einsetzen, um die Leistung bestimmter Teile der App zu überwachen und eine zusammenfassende Ansicht in der Firebase-Konsole anzuzeigen. Ein entscheidendes Kriterium für die Nutzerakzeptanz einer App ist die Startzeit. Diese können Sie ebenfalls, genauso wie HTTP-Anforderungen, überwachen.

In-App Messaging: Das Versenden von Nachrichten von der App an die Nutzer ist eine sehr häufig genutzte Funktion. Die Benutzer werden mit zielgerichteten und kontextbezogenen Nachrichten dazu angehalten, sinnvolle Aktionen in der App durchzuführen. Es können Nachrichten basierend auf dem Benutzerverhalten und den Interessen ausgelöst werden. Die Funktion ist konfigurierbar, und eine Vielzahl von Anwendungsfällen und Formaten stehen zur Auswahl.

Test Lab: Zur Verfügung stehen virtuelle und physische Geräte, die von Google gehostet werden. Auf diesen Geräten können Sie während der Entwicklung, nach Änderungen oder vor einem finalen Deployment umfassende Tests durchführen. Das Ziel: durch umfassende Tests den Grad der Geräteabdeckung zu erhöhen und damit eine fehlerfreiere App zu entwickeln.

A/B Testing: Diese Tests dienen dazu, die Wirkung/Nutzerakzeptanz von neuen Funktionen zu erproben. Mit Gruppen von Nutzern (A und B) werden unterschiedliche Funktionen beziehungsweise Designs der App erprobt (Textkasten: „A/B Testing“). Firebase stellt die Infrastruktur für derartige Produkt- und Marketingexperimente direkt über Firebase zur Verfügung. Damit kann man geplante Updates einer App vor der endgültigen Auslieferung auf ihre Wirksamkeit und Funktionsweise prüfen und dann gegebenenfalls noch anpassen.

A/B Testing
A/B-Testing wird oft auch als Split- oder Multivariate Testing bezeichnet. Diese Tests werden immer häufiger verwendet. Statt nur zur raten, welche Variante die bessere Option für den Nutzer ist, versucht man es zu ermitteln. Was versteht man darunter? Die Idee ist, dass je einer Gruppe von Nutzern eine unterschiedliche Version einer App zum Testen präsentiert wird. Auf diese Weise kann die Applikation durch ein indirektes Kundenfeedback verbessert werden. Die Laufzeit eines solchen Tests, die Anzahl von parallel getesteten Varianten und die Auswahl von Nutzern, die am Test teilnehmen, sind individuell. Was alles lässt sich auf diese Weise testen? Grundsätzlich kann man so jedes einzelne Feature testen. Von der Positionierung und Farbe der Buttons über das Layout bis hin zu ganzen Workflows, beispielsweise dem Anmeldeprozess. Es gibt keine besonderen Voraussetzungen für die Umsetzung von A/B-Tests. Es sollte jedoch sichergestellt werden, dass dem Benutzer nicht bei jedem Besuch eine andere Variante präsentiert wird. Sobald ein User eine bestimmte Variante erhalten hat, soll er diese bis zum Ende des Tests beibehalten. Ebenso sollte die Testgruppe möglichst repräsentativ zusammengestellt werden. Das Ziel besteht darin, eine aussagekräftige Mischung von Testpersonen zu finden. Nur so bekommt man verwertbare Ergebnisse.A/B-Tests werden in Firebase direkt unterstützt. Die Zielgruppe kann durch mehrere Kriterien definiert werden, beispielsweise kann man die Testpersonen auf Benutzer einer bestimmten App-Version beschränken. Mittels Remote Config kann man mit Änderungen an Parametern in mehreren Varianten experimentieren, um das Verhalten und das Erscheinungsbild der App in jeder Gruppe zu ändern, zum Beispiel das Farbschema oder die Positionierung von Menüoptionen. Man kann das Experiment mit einem kleinen Prozentsatz der Nutzer durchführen und die Teilnehmerzahl langsam steigern. Die Ergebnisse sind in Firebase einsehbar, auswertbar und Basis für die Auswahl des besten Features.

Cloud Messaging: Senden Sie Nachrichten und Benachrichtigungen an Benutzer über Plattformgrenzen hinweg (Android, iOS). Die Nachrichten können an einzelne Geräte, Gerätegruppen oder auch bestimmte Benutzersegmente gesendet werden. Firebase Cloud Messaging (FCM) lässt sich umfassend skalieren und ist laut Dokumentation in der Lage, täglich sehr viele Nachrichten zu versenden.

Google Analytics: Diese Funktion liefert Erkenntnisse über die Nutzung der App durch die Anwender. Auf der Basis des Nutzerverhaltens können Entscheidungen über die weitere App-Entwicklung (Produktroadmap) getroffen werden. Neben Echtzeitberichten und Auswertungen im Dashboard kann man die Daten für eine weitere Analyse exportieren.

Hosting: Viele der vorgestellten Funktionen richten sich an die direkte Nutzung in nativen bzw. hybriden Apps für die mobilen Geräte. Das Hosting stellt spezielle Services für das Bereitstellen von Web-Apps bereit, unter anderem die Nutzung von kostenlosen SSL-Zertifikaten.

Predictions: Die Möglichkeiten des maschinellen Lernens (ML) sollen genutzt werden, um Nutzer zu klassifizieren und beispielsweise potenzielle App-Wechsler anhand ihres Nutzerverhaltens zu identifizieren und dementsprechend entgegenwirken zu können.

Remote Config: Via Remote können Sie die App für den Benutzer individuell anpassen, zum Beispiel im Rahmen von A/B-Tests. Auf diese Weise können Funktionen via Update bereitgestellt und getestet werden, ohne eine komplette neue Version zu deployen.

Dynamic Links: Verwenden Sie dynamische Links, um eine angepasste Benutzererfahrung für iOS, Android und das Web bereitzustellen. Mit Dynamic Links erhalten die Nutzer je nach aktiver Plattform angepasste Optionen zur Auswahl. Öffnet ein Nutzer einen Dynamic Link in einer iOS- oder Android-App, können diese direkt zu den Inhalten in der nativen App zeigen. Öffnet ein Nutzer den gleichen Dynamic Link in einem Desktopbrowser, kann der Link zu den entsprechenden Inhalten auf der Webseite zeigen. Wenn ein Benutzer einen Dynamic Link unter iOS oder Android aktiviert und die betreffende App nicht installiert ist, wird der Benutzer aufgefordert, sie zu installieren. Das Ziel ist eine höhere Installationsrate der App.

Dieser Überblick hat Ihnen die Funktionsvielfalt von Firebase vorgestellt. Dabei wird es Ihnen wahrscheinlich wie den Autoren gehen, die sich zunächst auf die Kernfeatures konzentriert haben. Je nach App und Funktion der App dürften das die Bereiche Datenspeicherung, Authentifizierung und Messaging sein. Die anderen Funktionen und Features sind wahrscheinlich bei der Auswahl des Backends nicht entscheidend, können jedoch später im Entwicklungsprozess eingebunden werden.

Unterstützte Systeme

Firebase kommt aus dem Hause Google und ist damit natürlich das bevorzugte Backend für Android-Apps. Andere Systeme werden dennoch unterstützt, denn die meisten Apps werden heute sowohl für Android als auch für iOS programmiert. Ein Blick in die Dokumentation zeigt, dass Firebase direkt Programmierschnittstellen unter anderem für die folgenden technischen Systeme anbietet: Java (Android), Swift und Objective-C (iOS), JavaScript, Node.js (Client), C++ und Unity. Damit dürften aus technischer Sicht auf Clientseite alle maßgeblichen Systeme dabei sein. Auf der Webseite von Firebase gibt es neben der jeweiligen API-Referenz dokumentierte Beispiele für die am meisten verwendeten Systeme und die notwendigen Libraries (SDKs) zum Download. Für unsere kommenden Experimente werden wir insbesondere die sogenannten Guides nutzen, die uns die ersten Schritte zur Verwendung der Basisfunktionen ebnen (Abb. 3). Positiv: Mit Hilfe kurzer Videosequenzen bekommt man die wichtigsten Schritte direkt gezeigt.

Firebase App Integration

Abb. 3: Guides zeigen die ersten Schritte bei der Integration von Firebase in die App

Preise

Ein wichtiges Merkmal zur Auswahl des passenden Backends für eine App sind die anfallenden Kosten. Es stehen unterschiedliche Pläne zur Auswahl. Eine Übersicht finden Sie in Abbildung 4.

Firebase Preise

Abb. 4: Preis- und Funktionsübersicht von Firebase

Sehr erfreulich: Der kostenfreie Plan ist nicht zeitlich begrenzt, sondern steht auch für die dauerhafte Nutzung zur Verfügung. Wenn man sich die einzelnen Leistungsparameter ansieht, dann dürften die gebotenen Leistungen im sogenannten Spark Plan (kostenfrei) auch für umfassendere App-Projekte genügen. Für mehr Speicher, Anfragen, Datenbanknutzung und API Calls stehen erweiterte Pläne und individuelle Preispakete zur Auswahl. Für den Einstieg bedeutet das, dass man mit Firebase anfangen und im Rahmen eines Testprojekts prüfen kann, ob es das passende Backend ist. Kommen Sie zu dem Ergebnis, dass es aus technischer Sicht passt, dann können Sie im Produktivprojekt mit dem kostenfreien Plan (Spark Plan) starten. Erst wenn die Nutzung (Anzahl der Anwender, Häufigkeit der Anfragen) entsprechend skaliert, müssen Sie auf einen kostenpflichtigen Plan wechseln. Es steht ein Kalkulator zur Verfügung, der Ihnen hilft, die künftigen Kosten der Nutzung des Firebase Backends abzuschätzen. Damit kann man die einzelnen Funktionen und zu nutzenden Features – jeweils beginnend beim freien Kontingent – konfigurieren.

Anmeldung und Dashboard

Starten wir, indem wir einen ersten Streifzug durch das Online-Dashboard von Firebase vornehmen. Sie benötigen auf jeden Fall einen Google-Account, mit dem Sie sich auf Firebase anmelden. In Firebase rufen Sie über den Menüpunkt Console das Dashboard auf. Die Arbeit mit Firebase wird in Projekten organisiert. Für einen ersten Eindruck legen wir ein Projekt (Name: Test) an. Dem Projekt wird automatisch der Spark Plan (kostenfrei) zugeordnet. Das Dashboard startet mit einer Projektübersicht (Abb. 5).

Firebase Dashboard

Abb. 5: Übersicht im Dashboard zu einem Projekt

Sie erhalten direkte Links zu den oben beschriebenen Basisfunktionen, wie beispielsweise Authentication, Database, Storage, Hosting usw. und ebenso einen Link mit dem Verweis, Firebase zu Ihrer App hinzuzufügen. Dieser Vorgang läuft in folgenden Schritten ab: App im Dashboard registrieren (anhand einer eindeutigen Kennung), die Konfigurationsdatei herunterladen und im App-Projekt einbinden und das Firebase SDK zum App-Projekt ergänzen, das als Basis für die Kommunikation aus dem Quellcode dient. Diese Schritte werden wir bei den weiteren Betrachtungen in den kommenden beiden Teilen dieser Artikelserie detailliert unter die Lupe nehmen. Sie werden der Einstieg für die Nutzung von Firebase als Backend für eine App sein. Kommen wir jetzt noch kurz zu möglichen Alternativen zu Firebase.

Alternativen

Auch wenn es in dieser Serie um Firebase als Backend und Clouddienst für Apps geht, hier noch ein paar Hinweise auf Alternativen. Im Funktionsumfang ist sicherlich Microsoft Azure direkt vergleichbar. Auch hier gehen die Funktionen weit über die Kernfeatures der Datenspeicherung und der Authentifizierung hinaus. Einige Funktionen sind auch bei Azure bis zu einem bestimmten Umfang nach der Testphase kostenfrei.

Direkt für mobile Apps möchten wir noch die folgenden Anbieter erwähnen: Parse Server, Kinvey und backendless. Auswahlkriterien für den richtigen Backend-Anbieter wurden zu Beginn dieses Artikels bereits beschrieben.

Fazit

Eine beeindruckende Vielfalt an Funktionen bieten die Backend-as-a-Service- beziehungsweise Cloudanbieter für die Entwicklung von Apps. Interessant ist, dass sich die Funktionen nicht nur auf Datenspeicherung und Benutzerverwaltung beziehen, sondern auch eine Reihe an Aufgaben rund um die App-Entwicklung und -Pflege abdecken. In der Praxis sind neben den angebotenen Funktionen und den anfallenden Kosten die Art und Weise der Einbindung in die eigene App von Interesse. Wie erfolgt die Kommunikation? Gibt es ein eigenes SDK? Lassen sich die Bibliotheken direkt in die integrierten Entwicklungsumgebungen, insbesondere Android Studio für Android-Apps und Xcode für iOS-Apps einbinden? Welche Konfigurationsarbeiten sind im Dashboard von Firebase notwendig? All das werden wir konkret testen, zum Beispiel anhand der typischen Aufgaben der Benutzerverwaltung für Apps der mobilen Geräte. Wie man mit Firebase nun konkret arbeitet, was gut funktioniert und wo es vielleicht beim Einstieg etwas hakelt, lesen Sie in der nächsten Ausgabe des Java Magazins.

Geschrieben von
Dr. Veikko Krypczyk
Dr. Veikko Krypczyk
Dr. Veikko Krypczyk studierte und promovierte in Betriebswirtschaftslehre mit dem Schwerpunkt Wirtschaftsinformatik. Er ist Entwickler und Fachautor. Aktuell beschäftigt er sich mit der App-Programmierung für Windows Phone und Android.
Olena Bochkor
Olena Bochkor
Olena Bochkor studierte Betriebswirtschaftslehre u. a. mit dem Schwerpunkt Wirtschaftsinformatik. Weitere Informationen zu diesen und anderen Themen der IT finden Sie unter http://it-fachartikel.de.
Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: