Firebase ist Googles Backend-as-a-Service-Plattform (BaaS) für Web- und Mobile-Apps: Authentifizierung, Datenbanken, Storage, Cloud Functions und Hosting aus einer Hand. Die Kommandozeile übernimmt firebase (Node-basiert, npm install -g firebase-tools).

Projekt einrichten

firebase login                          # Browser-Login mit Google-Konto
firebase init                           # Assistent für Firestore, Functions, Hosting ...
firebase use --add                      # Projekt auswählen / hinzufügen
firebase apps:list                      # Registrierte Apps anzeigen

firebase init erzeugt die Konfigurationsdatei firebase.json und richtet die gewählten Dienste im Projektverzeichnis ein.

Deployen

firebase deploy                          # alles deployen
firebase deploy --only hosting           # nur statisches Hosting
firebase deploy --only functions         # nur Cloud Functions
firebase deploy --only firestore:rules   # nur Firestore-Security-Rules

Cloud Firestore ist die dokumentenorientierte NoSQL-Datenbank mit Echtzeit-Synchronisation; die ältere Realtime Database speichert Daten als JSON-Baum. Security Rules steuern, wer lesen und schreiben darf:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth != null;
    }
  }
}

Lokal entwickeln und testen

firebase emulators:start                  # Emulatoren für Auth, Firestore, Functions
firebase emulators:exec "npm test"        # Tests gegen Emulatoren
firebase serve                            # lokales Hosting (Vorschau)

Die Emulatoren bilden die Cloud-Dienste lokal ab — so entstehen keine Kosten und keine echten Daten beim Entwickeln.

Praxis-Tipps

  • firebase functions:shell testet Functions interaktiv.
  • firebase firestore:delete --all-collections leert eine Datenbank.
  • Mit Firebase Authentication übernimmt Google das Passwort-, OAuth- und SSO-Management.

Verwandte Grundlagen: NoSQL-Datenbank, JavaScript-Befehle, DynamoDB-Befehle und JSON.