## Kapitel 1 – Überblick über die Firebase-Plattform
### Seite 1 – Einführung in die Firebase-Konsole und eine „Hello Firebase“-Web‑App
---
#### Lernziele
Am Ende dieser Seite wird der Leser in der Lage sein:
1. Die **Firebase-Konsole** zu finden und zu navigieren.
2. Die Kernbausteine eines Firebase‑Projekts zu definieren (Projekt, App, Authentifizierung, Realtime Database, Cloud Firestore, Hosting, Cloud Functions).
3. Eine minimale Web‑Anwendung zu erstellen, die sich mit einem neu erstellten Firebase‑Projekt verbindet und eine einfache Nachricht aus der **Realtime Database** der Konsole anzeigt.
4. Häufige Stolperfallen zu erkennen, denen Anfänger‑Entwickler beim Initialisieren einer Firebase‑App begegnen.
5. Die nächsten Themen im Kapitel zu antizipieren, die das Verständnis jedes Dienstes vertiefen und zeigen, wie sie zusammenarbeiten.
---
#### 1. Die Firebase-Konsole – Ihr Entwicklungs‑Hub
Die **Firebase-Konsole** (https://console.firebase.google.com) ist ein webbasiertes Dashboard, das alle Firebase‑Dienste unter einem einzigen visuellen Dach zusammenführt. Sie folgt einem projektzentrierten Modell:
- **Projekt** – Der übergeordnete Container, der alle Ressourcen (Datenbankinstanzen, Authentifizierungs‑Provider, Hosting‑Sites usw.) gruppiert.
- **App** – Eine Repräsentation einer bestimmten Client‑Plattform (iOS, Android, Web), die innerhalb eines Projekts lebt. Jede App erhält ein einzigartiges **Firebase‑Konfigurationsobjekt** (API‑Schlüssel, Projekt‑ID usw.).
- **Dienste** – Funktionen wie Authentifizierung, Realtime Database, Firestore, Hosting und Functions werden auf Projektebene aktiviert und können von jeder App innerhalb dieses Projekts genutzt werden.
> **Visuelle Hilfe** – Stellen Sie sich den Startbildschirm der Konsole als ein Bedienfeld mit Kacheln vor, die *Authentication*, *Realtime Database*, *Firestore*, *Hosting*, *Functions* und *Analytics* beschriftet sind. Ein Klick auf eine Kachel erweitert ein Panel, das Konfigurationsdetails, Nutzungsstatistiken und Schnellstart‑Anleitungen zeigt.
**Checkpoint 1** – Die Konsole sollte geöffnet, *Projekt hinzufügen* geklickt und der Name **„hello‑firebase‑demo“** angegeben werden. Die Projekt‑ID sollte notiert werden; sie erscheint später im Konfigurations‑Snippet.
---
#### 2. Kernkonzepte auf einen Blick
| Konzept | Zweck | Typischer Anwendungsfall |
|---------|-------|--------------------------|
| **Authentifizierung** | Benutzer verwalten und Ressourcen sichern | E‑Mail/Passwort‑Anmeldung, Google‑OAuth |
| **Realtime Database** | Niedrig‑Latenz‑JSON‑Baumspeicherung | Live‑Chat, kollaboratives Editieren |
| **Cloud Firestore** | Strukturierter, abfragbarer Dokumentenspeicher | E‑Commerce‑Kataloge, Analysen |
| **Hosting** | Statisches Web‑Site‑Deployment mit CDN | Landing‑Pages, Single‑Page‑Apps |
| **Cloud Functions** | Serverlose Backend‑Logik, ausgelöst durch Events | Bildskalierung, Zahlungsabwicklung |
Diese Dienste sind lose gekoppelt; ein einzelnes Projekt kann jede Kombination nutzen. Das **Hello Firebase**‑Beispiel wird nur zwei Dienste (Hosting und Realtime Database) berühren, um die Lernkurve sanft zu halten.
---
#### 3. Durchgeführtes Beispiel – Aufbau einer „Hello Firebase“-Web‑App
Ziel ist es, eine statische HTML‑Seite über Firebase Hosting bereitzustellen, die eine Begrüßung aus der Realtime Database liest und anzeigt.
**Schritt 1 – Realtime Database aktivieren**
1. In der Konsole das *Realtime Database*-Kachel auswählen.
2. Auf **Datenbank erstellen** klicken → *Im Testmodus starten* (erlaubt öffentliches Lesen/Schreiben für dieses Tutorial).
3. Im Reiter *Daten* einen Knoten hinzufügen:
```json
{
"greeting": "Hello, Firebase!"
}
```
Die Konsole zeigt die Realtime Database‑URL (z. B. `https://<PROJECT_ID>.firebaseio.com`). Firestore wird über das SDK aufgerufen und hat keine direkte URL, die in der Konsole angezeigt wird.
**Schritt 2 – Firebase‑CLI installieren**
```bash
npm install -g firebase-tools # Node.js muss installiert sein
firebase login # Mit dem Google‑Konto authentifizieren
```
**Schritt 3 – Lokales Projekt initialisieren**
```bash
mkdir hello-firebase && cd hello-firebase
firebase init hosting # Das oben erstellte Projekt auswählen
```
Bei der Eingabeaufforderung das Standard‑Verzeichnis `public` akzeptieren und es als **Single‑Page‑App** konfigurieren – eine Web‑Anwendung, die eine einzelne HTML‑Seite lädt und Inhalte dynamisch aktualisiert, ohne die gesamte Seite neu zu laden.
**Schritt 4 – HTML und JavaScript hinzufügen**
`public/index.html` mit folgendem Inhalt erstellen:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Hello Firebase</title>
<script src="https://www.gstatic.com/firebasejs/9.x.x/firebase-app-compat.js"></script>
<script src="https://www.gstatic.com/firebasejs/9.x.x/firebase-database-compat.js"></script>
</head>
<body>
<h1 id="msg">Loading…</h1>
<script>
// 1️⃣ Firebase-Konfiguration – aus der Konsole > Projekteinstellungen > Allgemein > Ihre Apps kopieren
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "hello-firebase-demo.firebaseapp.com",
databaseURL: "https://hello-firebase-demo.firebaseio.com",
projectId: "hello-firebase-demo",
storageBucket: "hello-firebase-demo.appspot.com",
messagingSenderId: "YOUR_SENDER_ID",
appId: "YOUR_APP_ID"
};
// 2️⃣ Firebase initialisieren
firebase.initializeApp(firebaseConfig);
// 3️⃣ Referenz auf den Knoten "greeting" und Anzeige
const dbRef = firebase.database().ref('greeting');
dbRef.once('value')
.then(snapshot => {
document.getElementById('msg').textContent = snapshot.val();
})
.catch(err => {
console.error('Error fetching greeting:', err);
document.getElementById('msg').textContent = 'Failed to load greeting.';
});
</script>
</body>
</html>
```
Platzhalterwerte (`YOUR_API_KEY` usw.) müssen durch die tatsächlichen Schlüssel aus dem Abschnitt **Web‑App** der Konsole ersetzt werden.
**Schritt 5 – Auf Firebase Hosting bereitstellen**
```bash
firebase deploy
```
Nach einem kurzen Upload gibt die CLI eine öffentliche URL aus, z. B. `https://hello-firebase-demo.web.app`. Das Öffnen dieser URL in einem Browser sollte **„Hello, Firebase!“** anzeigen, das direkt aus der Datenbank abgerufen wird.
---
#### 4. Häufige Fehler & Tipps
| Fehler | Warum es passiert | Lösung |
|--------|-------------------|--------|
| **Falsche Datenbank‑URL verwenden** | Die Konsole zeigt zwei URLs (Realtime vs. Firestore). | Sicherstellen, dass `databaseURL` auf den Realtime‑Database‑Endpunkt (`*.firebaseio.com`) zeigt. |
| **Testmodus in der Produktion aktiviert lassen** | Der Testmodus gewährt offenen Lese‑/Schreibzugriff. | Auf *Locked Mode* umschalten und Sicherheitsregeln definieren, bevor öffentlich gestartet wird. |
| **Platzhalter‑API‑Schlüssel nicht ersetzen** | Das Gerüst enthält generische Zeichenketten. | Die genauen Werte aus *Projekteinstellungen → Allgemein → Ihre Apps* kopieren. |
| **Aus dem falschen Verzeichnis bereitstellen** | Die CLI verwendet standardmäßig `public/`. | Sicherstellen, dass `index.html` im ausgewählten öffentlichen Ordner liegt. |
**Tipp** – Führen Sie `firebase emulators:start` (oder `firebase emulators:start --only hosting`) lokal vor dem Deploy aus; es bietet Live‑Reload und eine vollständige lokale Emulationsumgebung.
---
#### 5. Zusammenfassung
- Die Firebase-Konsole zentralisiert alle Dienste unter einem **Projekt**.
- Kern‑Dienste (Authentifizierung, Realtime Database, Firestore, Hosting, Functions) können beliebig kombiniert werden.
- Eine minimale **Hello Firebase**‑App demonstriert den kompletten Workflow: ein Projekt erstellen, einen Dienst aktivieren, eine clientseitige Konfiguration schreiben und über die CLI bereitstellen.
- Die Beherrschung dieses Gerüsts bereitet den Lernenden auf tiefere Erkundungen von Authentifizierungs‑Flows, Datensicherheit und serverlosen Funktionen vor, die in den folgenden Seiten behandelt werden.
---
#### 6. Wiederholungsfragen
1. Was sind die beiden hierarchischen Entitäten in Firebase (Projekt → App) und wie stehen die Dienste zu ihnen in Beziehung?
2. Beschreiben Sie den Zweck von **Testmodus** gegenüber **Locked Mode** in den Sicherheitsregeln der Realtime Database, einschließlich warum der Testmodus für die Produktion unsicher ist (jeder, der die Datenbank‑URL kennt, kann Daten lesen oder schreiben).
3. Skizzieren Sie die Schritte, die erforderlich sind, um einen Wert aus der Realtime Database in einem Web‑Client abzurufen.
4. Warum ist es wichtig, die Platzhalter‑API‑Schlüsselwerte durch die für das Projekt generierten zu ersetzen?
---
#### 7. Weiterführende Literatur
- *Firebase‑Dokumentation – Einstieg mit der Konsole* (firebase.google.com/docs/console)
- *Firebase‑CLI‑Referenz* (firebase.google.com/docs/cli)
- *Realtime‑Database‑Sicherheitsregeln* (firebase.google.com/docs/database/security)
---
*Nachdem der Leser eine funktionierende „Hello Firebase“-Anwendung gebaut hat, ist er nun bereit, tiefer einzutauchen. Die folgenden Seiten werden jeden Firebase‑Dienst ausführlich untersuchen – Authentifizierungs‑Strategien, strukturierte Daten mit Cloud Firestore, serverlose Logik mit Cloud Functions und Leistungs‑Monitoring – und enden mit der letzten Seite dieses Kapitels, die die Fähigkeiten der Plattform zu einer kohärenten, produktionsbereiten Architektur zusammenfasst.*
---
#### Praktische Übung
Modifizieren Sie die App, sodass sie einen zweiten Knoten namens `author` aus der Datenbank liest und unter der Begrüßung anzeigt.
3 kostenlose Seiten übrig · Kostenlose Vorschau
Kapitel 1
Firebase-Plattform‑Übersicht
Kapitel 1 – Überblick über die Firebase-Plattform
Seite 1 – Einführung in die Firebase-Konsole und eine „Hello Firebase“-Web‑App
Lernziele
Am Ende dieser Seite wird der Leser in der Lage sein:
Die Firebase-Konsole zu finden und zu navigieren.
Die Kernbausteine eines Firebase‑Projekts zu definieren (Projekt, App, Authentifizierung, Realtime Database, Cloud Firestore, Hosting, Cloud Functions).
Eine minimale Web‑Anwendung zu erstellen, die sich mit einem neu erstellten Firebase‑Projekt verbindet und eine einfache Nachricht aus der Realtime Database der Konsole anzeigt.
Häufige Stolperfallen zu erkennen, denen Anfänger‑Entwickler beim Initialisieren einer Firebase‑App begegnen.
Die nächsten Themen im Kapitel zu antizipieren, die das Verständnis jedes Dienstes vertiefen und zeigen, wie sie zusammenarbeiten.
1. Die Firebase-Konsole – Ihr Entwicklungs‑Hub
Die Firebase-Konsole (https://console.firebase.google.com) ist ein webbasiertes Dashboard, das alle Firebase‑Dienste unter einem einzigen visuellen Dach zusammenführt. Sie folgt einem projektzentrierten Modell:
Projekt – Der übergeordnete Container, der alle Ressourcen (Datenbankinstanzen, Authentifizierungs‑Provider, Hosting‑Sites usw.) gruppiert.
App – Eine Repräsentation einer bestimmten Client‑Plattform (iOS, Android, Web), die innerhalb eines Projekts lebt. Jede App erhält ein einzigartiges Firebase‑Konfigurationsobjekt (API‑Schlüssel, Projekt‑ID usw.).
Dienste – Funktionen wie Authentifizierung, Realtime Database, Firestore, Hosting und Functions werden auf Projektebene aktiviert und können von jeder App innerhalb dieses Projekts genutzt werden.
Visuelle Hilfe – Stellen Sie sich den Startbildschirm der Konsole als ein Bedienfeld mit Kacheln vor, die Authentication, Realtime Database, Firestore, Hosting, Functions und Analytics beschriftet sind. Ein Klick auf eine Kachel erweitert ein Panel, das Konfigurationsdetails, Nutzungsstatistiken und Schnellstart‑Anleitungen zeigt.
Checkpoint 1 – Die Konsole sollte geöffnet, Projekt hinzufügen geklickt und der Name „hello‑firebase‑demo“ angegeben werden. Die Projekt‑ID sollte notiert werden; sie erscheint später im Konfigurations‑Snippet.
2. Kernkonzepte auf einen Blick
Konzept
Zweck
Typischer Anwendungsfall
Authentifizierung
Benutzer verwalten und Ressourcen sichern
E‑Mail/Passwort‑Anmeldung, Google‑OAuth
Realtime Database
Niedrig‑Latenz‑JSON‑Baumspeicherung
Live‑Chat, kollaboratives Editieren
Cloud Firestore
Strukturierter, abfragbarer Dokumentenspeicher
E‑Commerce‑Kataloge, Analysen
Hosting
Statisches Web‑Site‑Deployment mit CDN
Landing‑Pages, Single‑Page‑Apps
Cloud Functions
Serverlose Backend‑Logik, ausgelöst durch Events
Bildskalierung, Zahlungsabwicklung
Diese Dienste sind lose gekoppelt; ein einzelnes Projekt kann jede Kombination nutzen. Das Hello Firebase‑Beispiel wird nur zwei Dienste (Hosting und Realtime Database) berühren, um die Lernkurve sanft zu halten.
3. Durchgeführtes Beispiel – Aufbau einer „Hello Firebase“-Web‑App
Ziel ist es, eine statische HTML‑Seite über Firebase Hosting bereitzustellen, die eine Begrüßung aus der Realtime Database liest und anzeigt.
Schritt 1 – Realtime Database aktivieren
In der Konsole das Realtime Database-Kachel auswählen.
Auf Datenbank erstellen klicken → Im Testmodus starten (erlaubt öffentliches Lesen/Schreiben für dieses Tutorial).
Im Reiter Daten einen Knoten hinzufügen:
{
"greeting": "Hello, Firebase!"
}
Die Konsole zeigt die Realtime Database‑URL (z. B. https://<PROJECT_ID>.firebaseio.com). Firestore wird über das SDK aufgerufen und hat keine direkte URL, die in der Konsole angezeigt wird.
Schritt 2 – Firebase‑CLI installieren
npm install -g firebase-tools # Node.js muss installiert sein
firebase login # Mit dem Google‑Konto authentifizieren
Schritt 3 – Lokales Projekt initialisieren
mkdir hello-firebase && cd hello-firebase
firebase init hosting # Das oben erstellte Projekt auswählen
Bei der Eingabeaufforderung das Standard‑Verzeichnis public akzeptieren und es als Single‑Page‑App konfigurieren – eine Web‑Anwendung, die eine einzelne HTML‑Seite lädt und Inhalte dynamisch aktualisiert, ohne die gesamte Seite neu zu laden.
Schritt 4 – HTML und JavaScript hinzufügenpublic/index.html mit folgendem Inhalt erstellen:
Platzhalterwerte (YOUR_API_KEY usw.) müssen durch die tatsächlichen Schlüssel aus dem Abschnitt Web‑App der Konsole ersetzt werden.
Schritt 5 – Auf Firebase Hosting bereitstellen
firebase deploy
Nach einem kurzen Upload gibt die CLI eine öffentliche URL aus, z. B. https://hello-firebase-demo.web.app. Das Öffnen dieser URL in einem Browser sollte „Hello, Firebase!“ anzeigen, das direkt aus der Datenbank abgerufen wird.
4. Häufige Fehler & Tipps
Fehler
Warum es passiert
Lösung
Falsche Datenbank‑URL verwenden
Die Konsole zeigt zwei URLs (Realtime vs. Firestore).
Sicherstellen, dass databaseURL auf den Realtime‑Database‑Endpunkt (*.firebaseio.com) zeigt.
Testmodus in der Produktion aktiviert lassen
Der Testmodus gewährt offenen Lese‑/Schreibzugriff.
Auf Locked Mode umschalten und Sicherheitsregeln definieren, bevor öffentlich gestartet wird.
Platzhalter‑API‑Schlüssel nicht ersetzen
Das Gerüst enthält generische Zeichenketten.
Die genauen Werte aus Projekteinstellungen → Allgemein → Ihre Apps kopieren.
Aus dem falschen Verzeichnis bereitstellen
Die CLI verwendet standardmäßig public/.
Sicherstellen, dass index.html im ausgewählten öffentlichen Ordner liegt.
Tipp – Führen Sie firebase emulators:start (oder firebase emulators:start --only hosting) lokal vor dem Deploy aus; es bietet Live‑Reload und eine vollständige lokale Emulationsumgebung.
5. Zusammenfassung
Die Firebase-Konsole zentralisiert alle Dienste unter einem Projekt.
Kern‑Dienste (Authentifizierung, Realtime Database, Firestore, Hosting, Functions) können beliebig kombiniert werden.
Eine minimale Hello Firebase‑App demonstriert den kompletten Workflow: ein Projekt erstellen, einen Dienst aktivieren, eine clientseitige Konfiguration schreiben und über die CLI bereitstellen.
Die Beherrschung dieses Gerüsts bereitet den Lernenden auf tiefere Erkundungen von Authentifizierungs‑Flows, Datensicherheit und serverlosen Funktionen vor, die in den folgenden Seiten behandelt werden.
6. Wiederholungsfragen
Was sind die beiden hierarchischen Entitäten in Firebase (Projekt → App) und wie stehen die Dienste zu ihnen in Beziehung?
Beschreiben Sie den Zweck von Testmodus gegenüber Locked Mode in den Sicherheitsregeln der Realtime Database, einschließlich warum der Testmodus für die Produktion unsicher ist (jeder, der die Datenbank‑URL kennt, kann Daten lesen oder schreiben).
Skizzieren Sie die Schritte, die erforderlich sind, um einen Wert aus der Realtime Database in einem Web‑Client abzurufen.
Warum ist es wichtig, die Platzhalter‑API‑Schlüsselwerte durch die für das Projekt generierten zu ersetzen?
7. Weiterführende Literatur
Firebase‑Dokumentation – Einstieg mit der Konsole (firebase.google.com/docs/console)
Nachdem der Leser eine funktionierende „Hello Firebase“-Anwendung gebaut hat, ist er nun bereit, tiefer einzutauchen. Die folgenden Seiten werden jeden Firebase‑Dienst ausführlich untersuchen – Authentifizierungs‑Strategien, strukturierte Daten mit Cloud Firestore, serverlose Logik mit Cloud Functions und Leistungs‑Monitoring – und enden mit der letzten Seite dieses Kapitels, die die Fähigkeiten der Plattform zu einer kohärenten, produktionsbereiten Architektur zusammenfasst.
Praktische Übung
Modifizieren Sie die App, sodass sie einen zweiten Knoten namens author aus der Datenbank liest und unter der Begrüßung anzeigt.