Firebase ist eine Anwendungsentwicklungsplattform, die 2012 eingeführt und zwei Jahre später von Google übernommen wurde. In seinen Anfängen war Firebase nur als Datenbank für Echtzeitanwendungen gedacht, aber Google erkannte sein Potenzial und beschloss, zusätzliche Dienste hinzuzufügen.

Derzeit ist Firebase ein BaaS (Backend as a Service) System mit 18 Diensten zur Erleichterung der Erstellung von Web- und mobilen Anwendungen. Zu den Unternehmen, die die BaaS-Dienste von Firebase nutzen, gehören Accenture, Alibaba Travels, Stack, Twitch und Instacart sowie mehr als 2,300 weitere.

Vorteile der Verwendung von Firebase

Der erste der von Firebase angebotenen Dienste war die Echtzeitdatenbank, und sie bleibt einer der größten Vorteile. Firebase-Echtzeitdatenbanken werden in der Cloud gehostet und speichern Daten in JSON Formatieren und Synchronisieren in Echtzeit mit jedem mit ihnen verbundenen Client. Unabhängig davon, ob Sie das iOS SDK, Android SDK oder JavaScript SDK verwenden, teilen sich alle Anwendungen, die mit einer Firebase Realtime-Datenbank verbunden sind, eine Instanz der Datenbank, die immer mit den neuesten Daten auf dem neuesten Stand gehalten wird.

Cloud Firestore ist ein weiterer interessanter Firebase-Dienst. Es ist ein NoSQL Dokumentendatenbank, die entwickelt wurde, um die Datenspeicherung, Synchronisierung und Abfrage für mobile und Web-Apps auf globaler Ebene zu erleichtern. Durch das Erstellen von Hierarchien zum Speichern verwandter Daten und aussagekräftigen Abfragen zum Abrufen von Daten kann das volle Potenzial von Cloud Firestore ausgeschöpft werden. Abfragen werden wiederum basierend auf der Größe der Ergebnisse und nicht auf der Grundlage der Datensatzgröße skaliert. Dadurch können Anwendungen von Anfang an skaliert werden, ohne bis zu dem Moment warten zu müssen, in dem der Bedarf die Kapazität übersteigt.

Zusätzlich zu den oben genannten Datenbankdiensten bietet Firebase auch Hosting-Dienste, Dateispeicherung, Funktionen (AWS Lambda-Stil), unter anderem.

API erstellen

APIs sind eine Möglichkeit, Dienste für Ihre eigenen oder Drittanbieter-Apps bereitzustellen. Firebase ermöglicht es Ihnen, benutzerdefinierte Dienste bereitzustellen, die wiederum die eigenen Dienste von Firebase nutzen, ohne dass Sie ein Back-End für diese Dienste einrichten müssen. Sie könnten beispielsweise den Zugriff auf eine Firebase-Echtzeitdatenbank für Anwendungen von Drittanbietern anbieten, um von Industriesensoren gesammelte Informationen abzufragen.

Der erste Schritt beim Erstellen einer API in Firebase ist der Zugriff auf die Firebase-Konsole und fügen Sie ein Projekt hinzu, indem Sie auf „Projekt hinzufügen“ klicken und dem neuen Projekt einen Namen geben. Google gibt Ihnen die Option zum Aktivieren Google Analytics für Ihr neues Projekt. Es wird empfohlen, diese Empfehlung zu akzeptieren, da Sie von Ihrer API Vorteile wie A/B-Tests und eine Vielzahl von statistischen Berichten erhalten.

Nachdem Sie Ihr Projekt erstellt haben, können Sie die Firebase-Dienste auswählen, die Ihre API verwenden soll. Um diese Aufgabe zu veranschaulichen, sehen wir uns an, wie Sie den Firebase Realtime-Datenbankdienst verwenden.

Einrichten einer Echtzeitdatenbank in Firebase

Klicken Sie in der Navigationsleiste links im Abschnitt Entwickeln auf Echtzeitdatenbank. Auf der rechten Seite wird die Schaltfläche "Datenbank erstellen" angezeigt. Klicken Sie darauf, um Ihre erste Datenbank in Firebase zu erstellen.

Als nächstes müssen Sie zwischen mehreren geografischen Standortoptionen für Ihre neue Datenbank wählen. Wählen Sie diejenige aus, die Ihren Benutzern am nächsten ist. Dies ist ein wichtiger Aspekt, um die Latenz Ihrer API zu minimieren, insbesondere bei Echtzeit-Apps.

Der nächste Schritt besteht darin, die grundlegenden Sicherheitsregeln für Ihre Datenbank zu konfigurieren. Sie können sich für den gesperrten Modus entscheiden und dann nach Bedarf Zugriffsberechtigungen zuweisen oder sich für den Testmodus entscheiden, der alle Lese- und Schreibvorgänge aktiviert.

Sie können mit der Testmodus-Option beginnen, um die Sicherheitseinstellungen am Anfang nicht zu komplizieren. Sie können später jederzeit Regeln erstellen, um die Sicherheitskonfiguration genauer festzulegen.

Sobald Sie die Konfiguration Ihrer Datenbank abgeschlossen haben, wird die entsprechende API auch im Abschnitt APIs und Dienste Ihrer persönlichen Konsole in der Google Cloud Platform aktiviert.

Programmierung der Firebase-API

Zu diesem Zeitpunkt haben Sie bereits die Grundelemente Ihres Projekts in der Firebase-Konsole konfiguriert. Der nächste Schritt besteht darin, Ihren API-Code zu schreiben. Dazu müssen Sie das Firebase-Hosting und die Firebase-Funktionen auf Ihrem lokalen Computer initialisieren. Sie können Firebase-Tools mit npm installieren:

npm install -g firebase-tools

Dann können Sie sich bei Firebase anmelden und Ihr Projekt mit den folgenden Befehlen initialisieren:

firebase login firebase init

Ein Begrüßungsbildschirm wird angezeigt, in dem Firebase Sie über den Ordner informiert, in dem Ihr Projekt initialisiert wird, und ein Menü mit Optionen wird angezeigt.

Wählen Sie in diesem Menü Funktionen und Hosting (die Hosting-Option ermöglicht es Ihnen, eine benutzerdefinierte URL für die zu entwickelnde API zu verwenden). Wählen Sie dann aus der Liste die zuvor erstellte Firebase-App aus. Anschließend müssen Sie die zu verwendende Sprache auswählen. Um eine Web-API zu entwickeln, können Sie sich für JavaScript entscheiden.

Wenn Sie Paketabhängigkeiten verwenden, installieren Sie diese mit npm im Ordner functions. Dann können Sie mit dem Schreiben des Codes für Ihre Funktionen beginnen. Denken Sie daran, die Pakete firebase-functions und firebase-admin zusammen mit allen anderen benötigten Paketen einzuschließen:

import * as functions from 'firebase-functions'; 
import * as admin from 'firebase-admin';

Um die Echtzeitdatenbank zu verwenden, müssen Sie bei der Initialisierung Ihres JavaScript-SDKs deren URL angeben. Die URL befindet sich im Abschnitt "Echtzeitdatenbank" der Firebase-Konsole. Sie erkennen es an seinem Format:

https://<database-name>.<region>.firebasedatabase.app

Sie können das folgende Snippet verwenden, um Ihr SDK zu initialisieren und die Daten zu ersetzen, die dem Konfigurationsobjekt Ihres Projekts entsprechen:

var config = {
  apiKey: "apiKey",
  authDomain: "projectId.firebaseapp.com",
  databaseURL: "https://databaseName.firebaseio.com",
  storageBucket: "bucket.appspot.com"
};
firebase.initializeApp(config);
var database = firebase.database();

Sobald Sie den Code Ihrer API-Funktion geschrieben haben, ist es Zeit für die Bereitstellung. Zuvor müssen Sie jedoch einige Änderungen in firebase.json vornehmen und die folgenden Zeilen hinzufügen, die entsprechend Ihrer Projektkonfiguration geändert werden:

"rewrites": [
     {
       "source": "/api/v1/**",
       "function": "webApi"
     }
]

Der nächste Schritt ist die Bereitstellung. Wenn Sie zum ersten Mal eine vollständige Bereitstellung durchführen müssen, führen Sie den Befehl aus:

firebase deploy

In nachfolgenden Bereitstellungen können Sie nur die Funktionen mithilfe des Parameters –only functions bereitstellen.

Nach der Ausführung des Befehls deploy zeigt die Firebase-CLI die URL der HTTP-Endpunkte Ihrer Funktionen im Terminal an, mit der Sie Ihre APIs aus einer Webanwendung aufrufen können. Die URL enthält Ihre Projekt-ID und eine Region für die HTTP-Funktion. Die folgende URL kann beispielsweise verwendet werden, um eine Artikelabfragefunktion aufzurufen, indem Sie itemid=1 als Parameter übergeben:

https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

Um die Funktion auszuführen, öffnen Sie die URL mit den entsprechenden Parametern in einem Browser.

Beachten Sie, dass für die Bereitstellung in der Produktionsumgebung ein Abonnement des Firebase Blaze-Plans erforderlich ist, der nutzungsabhängig ist, wie Sie auf der Firebase-Preisseite nachlesen können. Es handelt sich um einen Post-Billing-Service, was bedeutet, dass Ihnen Ihre Nutzung am Ende eines jeden Monats in Rechnung gestellt wird.

Wenn Sie kein Blaze-Abonnement haben, zeigt der Bereitstellungsbefehl Ihre API-URL nicht an. Stattdessen wird eine Meldung angezeigt, die Sie darüber informiert, dass Sie den Blaze-Plan abonnieren müssen, wenn Sie in der Laufzeitumgebung bereitstellen möchten. In diesem Fall können Sie Firebase Local Emulation Suite weiterhin verwenden, um Anwendungen auf Ihrem lokalen Computer zu erstellen und zu testen, anstatt sie in der Firebase-Produktionsumgebung bereitzustellen. Lokale Tests sind nützlich, um unnötige Kosten während der Anwendungsentwicklung zu vermeiden, da jeder Testlauf Gebühren auf Ihrem Konto verursachen kann.

Lokales Testen und Prototyping

Das Tool Local Emulator Suite bietet eine integrierte Benutzeroberfläche, die das Prototyping einfach und nützlich macht, um Ihre Apps auf Ihrem lokalen Computer zu testen.

Mit der Emulator Suite-Benutzeroberfläche können Sie unter anderem Ihre Datenbankdesigns und Ihre Cloud Functions-Workflows testen, die Leistung der Back-End-Dienste analysieren und Änderungen an Sicherheitsregeln bewerten. Es ist im Grunde eine sichere Sandbox, um Ihre API-Funktionalität zu testen, bevor Sie sie an eine Produktionsumgebung senden.

Um Ihre Funktionen zu emulieren oder Ihre Anwendung lokal zu testen, führen Sie firebase emulators:start aus. Sie müssen Java installiert haben, um Firestore Emulator verwenden zu können. Wenn Sie es nicht haben, können Sie es von installieren .

Wenn Sie Firestore Emulator aufrufen, gibt der Befehl eine URL zurück, mit der Sie die Benutzeroberfläche der Emulator Suite in Ihrem Browser öffnen können. Standardmäßig lautet diese URL localhost:4000, sie kann jedoch auf jedem Computer unterschiedlich sein.

Sie erhalten auch eine vollständige URL für Ihre HTTP-Funktion. Diese URL sieht ähnlich aus:

http://localhost:5001/apiproject-8753c/us-central1/itemQuery

nur hat es den Namen Ihres Projekts, den Namen Ihrer Funktion und möglicherweise auch eine andere Portnummer auf Ihrem lokalen Computer.

Um die Funktion zu testen, kopieren Sie die vom Emulator zurückgegebene URL, fügen Sie alle notwendigen Parameter hinzu (zB ?itemid=1) und geben Sie sie in einem neuen Tab Ihres Browsers ein. Die Ergebnisse der API-Ausführung werden in der Emulator Suite-Benutzeroberfläche angezeigt.

Auf der Registerkarte Protokolle sehen Sie neue Protokolle, die darauf hinweisen, dass die Funktion itemQuery() ausgeführt wurde. Wenn Ihre Funktion neue Daten in Ihrer Firestore-Datenbank generiert, werden diese auf der Registerkarte Firestore angezeigt.

Mehr Aufmerksamkeit für Ihre API gewinnen

Wenn Sie möchten, dass die von Ihnen entwickelten APIs populär werden, kann Firebase Ihnen auch dabei helfen. Nicht nur, weil es Ihnen ermöglicht, Ihre Anwendung schneller zu erstellen, was Ihnen viel Arbeit beim Einrichten und Ausführen von Back-End-Diensten abnimmt, sondern auch, weil es Ihnen bei Ihrer Produktpositionierung hilft. Wie ist das möglich? Ganz einfach, weil mit Firebase verbundene Apps in Suchrankings besser ranken als andere Anwendungen.

Berücksichtigen Sie auch die App-Indexierungs-API von Firebase. Dieses Tool verbessert das Suchranking von App-Links und hilft Nutzern, die gewünschten Inhalte zu finden. Außerdem wird die Schaltfläche „Installieren“ nach der Schaltfläche für die Startseite Ihrer App platziert, sodass interessierte Benutzer nur einen Klick davon entfernt sind, Benutzer Ihrer App zu werden.

Zusammenfassend lässt sich sagen, dass Firebase Ihnen nicht nur Backend-Dienste bietet, die die Entwicklung Ihrer API Aber sobald es in Betrieb genommen und der Welt präsentiert wird, hilft es Ihnen auch, es zu promoten – und Geld damit zu verdienen.