Meine liebsten Firebase Funktionen

Meine liebsten Firebase Funktionen

Hier erzähle ich welche Firebase Funktionen ich in meiner Android App “Zweig” verwende.

Droidcon Wien – Firebase Einführung

Der erste Anstoß den ich bekommen habe, der mir Motivation verliehen hat um wieder eine eigene App zu erstellen war die Droidcon in Wien 2016. Damals war Firebase sehr aktuell und es gab dort einige Vorträge zu dem Thema. Das hat mir grundsätzlich gut gefallen und ich muss schon zugeben, dass es einem Möglichkeiten auf tut, die man so als Einzelperson nicht hätte. Ich habe ja nicht Lust ein eigenes Backend zu betreiben. Da hört die Arbeit ja nie auf. Als ich dann etwas später die Idee für die Zweig App hatte, war es klar, dass ich auf Firebase setzen werde. Da gibt es auf jeden Fall viel das man lernen kann.

Erster Versuch mit der Realtime Database

Das erste Feature das ich verwendet habe war die Realtime Database. Also quasi das erste Kernprodukt von Firebase. Ich wollte in meiner App mehrere Spiele anbieten, welche durch eine Konfiguration definiert werden. Diese Konfiguration wollte ich am Server machen, damit ich neue Spiele hinzufügen kann ohne ein App Update zu brauchen. Ich habe eine json Struktur für ein Spiel entwickelt. Die bestand aus ca. 5 Objekten, welche die jeweiligen Eigenschaften des Spiels bestimmten. Dieses json file habe ich dann einfach in die Datenbank hochgeladen. Immer wenn ich im Spiel Daten brauchte, habe ich einen Netzwerk Call gemacht. Da waren insgesamt 6 oder 7 Calls notwendig. Als ich das dann ausprobiert habe, hat sich herausgestellt, dass das sehr lange brauchte. Ich wollte natürlich ein flüssiges Spielerlebnis bauen. So war das nicht möglich. Ich hatte aber zu wenig Erfahrung mit nosql Datenbanken um herauszufinden wie das schneller geht. 

Firestore

Glücklicherweise wurde zu der Zeit die neue Firebase Datenbank “firestore” veröffentlicht. Ich hab mir die Doku durchgelesen und mich rasch zurechtgefunden. Der Aufbau der Daten im firestore ist für mein Gehirn einfach leichter begreifbar. Die realtime Database habe ich gelöscht. 

Ein Netzwerk Call für ein ganzes Spiel

Mit dem firestore ist es mit jeweils einem Netzwerk Call möglich ein Spiel in der Datenbank anzulegen und auszulesen. Ich erstelle im Code der App ein Spiel als Objekt und kann das ganze Objekt einfach dem firestore übergeben und der macht den Datenbankeintrag damit. Das geht sehr schnell und sehr einfach. Und wenn ich mir die Daten wieder holen will bekomme ich direkt das Objekt mit dem ich arbeiten kann. So einfach wird es sicher nicht bleiben. Ich muss die Daten wahrscheinlich noch etwas optimieren. Bisher sieht es aber recht einfach aus.

Authentication

Eine Voraussetzung um die meisten Firebase Funktionen verwenden zu können, ist, dass sich die user der App anmelden müssen. Somit ist es für mich notwendig die Authentication zu verwenden. Ich biete die Anmeldung mit email und Passwort oder mit dem Google Konto an. Glücklicherweise wird eine fertige Login Komponente von Google angeboten. Ich habe https://github.com/firebase/FirebaseUI-Android verwendet. Damit ist das Login mit ein paar Zeilen Code eingebaut und funktioniert. Danach muss aber noch das Theme an die eigene App anpassen. 

Storage – für Audiofiles

Storage nennt sich ein weiteres Angebot das Firebase anbietet. Hier kann man große Dateien speichern. Zb. Video- oder Audio Files. Für mich ist das perfekt um da meine Audiofiles im ogg Format für die Hörspiele abzulegen. Die Benutzung der API ist sehr ähnlich wie beim firestore. Ich habe das an einem Abend eingebaut. Fraglich ist aber noch ob oder wann ich mit meiner App das zur Verfügung stehende Datenvolumen ausschöpfen werde. Eine bestimmte Menge kann man pro Monat gratis nutzen. Da ich am liebsten Millionen Nutzer hätte könnte das knapp werden.  

Um gut bei einer Suche im Browser gefunden zu werden war auch von Anfang an klar, dass ich eine Website für das Spiel brauchen werde. Firebase bietet auch ein Hosting an. Man kann einfache, statische Webseiten auf Firebase speichern. So muss man nur eine Domain kaufen und mit Firebse verbinden. Ich habe mich dagegen entschieden weil ich gerne einmal eine Seite mit WordPress machen wollte. Dafür braucht man einen Datenbank und somit habe ich ein Hostingpaket bei world4you gekauft. 

Crashlytics

Als Bugtracking Tool verwende ich crashlytics das man mit FIrebase verbinden kann. Auch das ist rasch eingebaut. Kompliziert war hier für mich die Proguard einstellung. Man muss sein proguard file anpassen um deobfuscatete Fehlerberichte zu sehen. Meistens funktioniert das dann so gut, dass man während dem Entwickeln einen Absturz hat und sofort eine Email mit dem Crashreport bekommt. 

Performance

Ein wichtiges Qualitätsmerkmal einer App ist wie schnell sie funktioniert. Nur weil auf meinem Testgerät alles flüssig ist, muss das aber nicht auf den Tausenden anderen Android Geräten so sein. Um solche Daten zu bekommen kann man Firebase Performance einbauen. Man misst damit einfach wie lange die Ausführung eines Codeabschnitts braucht. Diese Daten werden an den Server geschickt und um so mehr Benutzer ich habe, umso besser kann ich beurteilen wie lange die App braucht um zu starten oder wie lange ein Level braucht um zu laden. 

TestLab

Das Firebase Testlab hat mir schon oft geholfen Fehler zu finden mit denen ich nicht gerechnet hätte. Hier kann man ein apk hochladen und automatische Test durchführen lassen. Man kann aus einigen Testgeräten und Android Versionen auswählen. Das Programm versucht sich einfach durch eine App durch zu klicken bis es abstürzt oder es nicht mehr weiter kommt. Als Ergebnis bekommt man unter anderem Screenshots und ein Video. Wenn während der Entwicklung alles klappt und man keine Tester hat vergisst man leicht einige Sachen zu testen. Ich habe so Abstürze in der Release Version gefunden die in der Debug Version nicht aufgetreten sind. Oder Fehler die nur in einer bestimmten Android Version auftritt kann man so finden. Aber grundsätzlich muss man schon sagen, dass das ein sehr oberflächlicher Test ist und der automatische Test weiss natürlich nicht was das Haupt Feature deiner App ist. 

Analytics

Firebase Analytics ist eine grundlegende Funktion die man automatisch hat, sobald man Firebase verwenden will. Das ist ein Tracking Tool mit dem man statistische Daten sammeln kann um herauszufinden was die User in einer App machen oder auch wer deine User sind. Ich muss sagen, dass ich mit Analytics gleich am Anfang ein Problem hatte. Ein paar Tage nachdem ich die erste Alpha Version für 6 Tester im Store hatte wurde meine App von Google gesperrt. Analytics verwendet nämlich die Werbe ID des Gerätes und das darf man nur wenn man das in einer Datenschutzerklärung offenlegt und der User in der App seine Zustimmung dazu gibt. Sich hier an die Regeln zu halten ist nicht schwer, hat mich aber wieder 2 Tage gekostet. 

Den Rest schau ich mir später an

Das waren jetzt alle Firebase Funktionen die ich ganz am Anfang verwende. Da gibt es aber noch viel mehr. Was ich aber erst verwenden will wenn ich wirklich User hab die den Aufwand rechtfertigen.

World4You Webhosting
LEGO SYSTEM AU

1 thought on “Meine liebsten Firebase Funktionen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert