Wie erstellt man erfolgreich eine API mit Firebase?

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-System (Backend as a Service) mit 18 Diensten zur Erleichterung der Erstellung von Web- und Mobilanwendungen. Zu den Unternehmen, die die BaaS-Dienste von Firebase nutzen, gehören Accenture, Alibaba Travels, Stack, Twitch und Instacart sowie mehr als 2.300 andere.

Vorteile der Verwendung von Firebase

Der erste der von Firebase angebotenen Dienste war die Echtzeit-Datenbank, und sie bleibt eine der größten Attraktionen. Firebase-Echtzeitdatenbanken werden in der Cloud gehostet, speichern Daten im JSON-Format 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 ist.

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

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

Erstellen einer API

APIs sind eine Möglichkeit, Dienste für Ihre eigenen oder Drittanbieter-Apps bereitzustellen. Mit Firebase können Sie benutzerdefinierte Dienste bereitstellen, die wiederum die eigenen Dienste von Firebase nutzen, ohne dass Sie ein Backend für diese Dienste einrichten müssen. Sie könnten beispielsweise Drittanbieteranwendungen Zugriff auf eine Firebase-Echtzeitdatenbank anbieten, um Informationen abzufragen, die von industriellen Sensoren gesammelt wurden.

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 bietet Ihnen die Möglichkeit, Google Analytics für Ihr neues Projekt zu aktivieren. Es wird empfohlen, diese Empfehlung zu akzeptieren, da Sie Vorteile wie A/B-Tests und eine Vielzahl statistischer Berichte von Ihrer API erhalten.

  So treten Sie einem Zoom-Meeting bei

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

Einrichten einer Echtzeitdatenbank in Firebase

Klicken Sie in der Navigationsleiste auf der linken Seite im Abschnitt „Entwickeln“ auf „Echtzeitdatenbank“. Auf der rechten Seite erscheint eine Schaltfläche „Datenbank erstellen“. 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.

Im nächsten Schritt konfigurieren Sie die grundlegenden Sicherheitsregeln für Ihre Datenbank. 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 ermöglicht.

Sie können mit der Option Testmodus beginnen, um die Sicherheitseinstellungen am Anfang nicht zu verkomplizieren. Sie können später jederzeit Regeln erstellen, um die Sicherheitskonfiguration mit größerer Granularität 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 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 aus (die Hosting-Option ermöglicht es Ihnen, eine benutzerdefinierte URL für die API zu haben, die Sie entwickeln werden). 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 ihre URL beim Initialisieren Ihres JavaScript-SDK 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. Aber vorher müssen Sie einige Änderungen in firebase.json vornehmen, indem Sie 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. Beim ersten Mal müssen Sie eine vollständige Bereitstellung durchführen, indem Sie den folgenden Befehl ausführen:

firebase deploy

Bei nachfolgenden Bereitstellungen können Sie nur die Funktionen bereitstellen, indem Sie den Parameter –only functions verwenden.

  7 Passwort-Tools für mehr Online-Sicherheit

Nach dem Ausführen des Bereitstellungsbefehls zeigt die Firebase-CLI die URL der HTTP-Endpunkte Ihrer Funktionen im Terminal an, die Sie zum Aufrufen Ihrer APIs von einer Webanwendung verwenden können. Die URL enthält Ihre Projekt-ID und eine Region für die HTTP-Funktion. Beispielsweise kann die folgende URL verwendet werden, um eine Artikelabfragefunktion aufzurufen, indem ihr itemid=1 als Parameter übergeben wird:

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 nutzungsbasiert 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 ihn in der Laufzeitumgebung bereitstellen möchten. In diesem Fall können Sie weiterhin die Firebase Local Emulation Suite verwenden, um Anwendungen auf Ihrem lokalen Computer zu erstellen und zu testen, anstatt sie in der Firebase-Produktionsumgebung bereitzustellen. Lokales Testen ist 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 Local Emulator Suite-Tool bietet eine integrierte Benutzeroberfläche, die das Prototyping einfach und nützlich macht, um Ihre Apps auf Ihrem lokalen Computer zu testen.

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

  So sehen Sie die gelöschten Instagram-Bilder von Personen

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 den Firestore-Emulator verwenden zu können. Wenn Sie es nicht haben, können Sie es von installieren hier.

Wenn Sie den 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 wie:

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

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

Kopieren Sie zum Testen der Funktion die vom Emulator zurückgegebene URL, fügen Sie ggf. notwendige Parameter hinzu (z. B. ?itemid=1) und geben Sie sie in einem neuen Tab Ihres Browsers ein. Die Ergebnisse der API-Ausführung werden in der Benutzeroberfläche der Emulator Suite 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, sehen Sie diese auf der Registerkarte Firestore.

Gewinnen Sie mehr Aufmerksamkeit für Ihre API

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 Backend-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 abschneiden als andere Anwendungen.

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

Zusammenfassend bietet Ihnen Firebase nicht nur Backend-Dienste, die die Entwicklung Ihrer API dramatisch beschleunigen, sondern sobald sie betriebsbereit und der Welt zugänglich ist, hilft sie Ihnen auch dabei, sie zu bewerben – und damit Geld zu verdienen.