Mit Firebase Authentication können Sie Nutzern erlauben, sich mit einer oder mehreren Anmeldemethoden in Ihrer App anzumelden, z. B. mit einer E-Mail-Adresse und einem Passwort oder mit föderierten Identitätsanbietern wie Google Log-in und Facebook Log-in. In diesem Tutorial erfahren Sie, wie Sie die Anmeldung mit E‑Mail-Adresse und Passwort in Ihre App einfügen.Firebase Authentication
Authentication SDK hinzufügen und initialisieren
Falls noch nicht geschehen, installieren Sie das Firebase JS SDK und initialisieren Sie Firebase.
Fügen Sie das Firebase Authentication JS SDK hinzu und initialisieren Sie Firebase Authentication:
Web
import { initializeApp } from "firebase/app"; import { getAuth } from "firebase/auth"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Firebase Authentication and get a reference to the service const auth = getAuth(app);
Web
import firebase from "firebase/compat/app"; import "firebase/compat/auth"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Firebase Authentication and get a reference to the service const auth = firebase.auth();
Optional: Prototyp erstellen und mit Firebase Local Emulator Suite testen
Bevor wir uns ansehen, wie Ihre App Nutzer authentifiziert, stellen wir Ihnen einige Tools vor, mit denen Sie die Authentication-Funktionalität prototypisieren und testen können: Firebase Local Emulator Suite. Wenn Sie sich zwischen Authentifizierungstechniken und ‑anbietern entscheiden, verschiedene Datenmodelle mit öffentlichen und privaten Daten mit Authentication und Firebase Security Rules ausprobieren oder Anmelde-UI-Designs prototypisieren, kann es eine gute Idee sein, lokal zu arbeiten, ohne Live-Dienste bereitzustellen.
Ein Authentication-Emulator ist Teil der Local Emulator Suite. Dadurch kann Ihre App mit emulierten Datenbankinhalten und ‑konfigurationen sowie optional mit Ihren emulierten Projektressourcen (Funktionen, anderen Datenbanken und Sicherheitsregeln) interagieren.
Die Verwendung des Authentication-Emulators umfasst nur wenige Schritte:
- Fügen Sie der Testkonfiguration Ihrer App eine Codezeile hinzu, um eine Verbindung zum Emulator herzustellen.
- Führen Sie
firebase emulators:start
im Stammverzeichnis Ihres lokalen Projektverzeichnisses aus. - Verwenden Sie die Local Emulator Suite-Benutzeroberfläche für interaktives Prototyping oder die Authentication-Emulator-REST API für nicht interaktive Tests.
Eine detaillierte Anleitung finden Sie unter App mit dem Authentication-Emulator verbinden. Weitere Informationen finden Sie in der Local Emulator Suite-Einführung.
Sehen wir uns nun an, wie Sie Nutzer authentifizieren.
Neue Nutzer registrieren
Erstellen Sie ein Formular, mit dem sich neue Nutzer mit ihrer E-Mail-Adresse und einem Passwort für Ihre App registrieren können. Wenn ein Nutzer das Formular ausfüllt, validieren Sie die vom Nutzer angegebene E-Mail-Adresse und das Passwort und übergeben Sie sie dann an die Methode createUserWithEmailAndPassword
:
Web
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed up const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Web
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
Vorhandene Nutzer anmelden
Erstellen Sie ein Formular, mit dem sich bestehende Nutzer mit ihrer E-Mail-Adresse und ihrem Passwort anmelden können. Wenn ein Nutzer das Formular ausfüllt, rufen Sie die Methode signInWithEmailAndPassword
auf:
Web
import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; });
Web
firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; });
Authentifizierungsstatus-Observer festlegen und Nutzerdaten abrufen
Hängen Sie für jede Seite Ihrer App, die Informationen zum angemeldeten Nutzer benötigt, einen Observer an das globale Authentifizierungsobjekt an. Dieser Observer wird immer dann aufgerufen, wenn sich der Anmeldestatus des Nutzers ändert.
Hängen Sie den Observer mit der Methode onAuthStateChanged
an. Wenn sich ein Nutzer erfolgreich anmeldet, können Sie Informationen über den Nutzer im Observer abrufen.
Web
import { getAuth, onAuthStateChanged } from "firebase/auth"; const auth = getAuth(); onAuthStateChanged(auth, (user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/auth.user const uid = user.uid; // ... } else { // User is signed out // ... } });
Web
firebase.auth().onAuthStateChanged((user) => { if (user) { // User is signed in, see docs for a list of available properties // https://firebase.google.com/docs/reference/js/v8/firebase.User var uid = user.uid; // ... } else { // User is signed out // ... } });
Nächste Schritte
So fügen Sie Unterstützung für andere Identitätsanbieter und anonyme Gastkonten hinzu: