Erste Schritte mit Firebase Authentication auf Websites

Mit Firebase Authentication können Sie Nutzern die Anmeldung in Ihrer App mit einer oder mehreren Anmeldemethoden ermöglichen, darunter die Anmeldung mit E‑Mail-Adresse und Passwort sowie föderierte Identitätsanbieter wie Google Log-in und Facebook Log-in. In dieser Anleitung erfahren Sie, wie Sie mit Firebase Authentication beginnen, indem Sie Ihrer App die Anmeldung mit E-Mail-Adresse und Passwort hinzufügen.

Authentication SDK hinzufügen und initialisieren

  1. Installieren Sie das Firebase JS SDK und initialisieren Sie Firebase, falls noch nicht geschehen.

  2. 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) Prototyping und Testen mit Firebase Local Emulator Suite

Bevor wir darüber sprechen, wie Ihre App Nutzer authentifiziert, stellen wir Ihnen eine Reihe von Tools vor, mit denen Sie Authentication-Funktionen prototypisieren und testen können: Firebase Local Emulator Suite. Wenn Sie sich zwischen Authentifizierungstechniken und ‑anbietern entscheiden, verschiedene Datenmodelle mit öffentlichen und privaten Daten mithilfe von Authentication und Firebase Security Rules ausprobieren oder Prototypen für Anmelde-UI-Designs erstellen möchten, kann es eine gute Idee sein, lokal zu arbeiten, ohne Live-Dienste bereitzustellen.

Ein Authentication-Emulator ist Teil der Local Emulator Suite. Damit kann Ihre Anwendung mit emulierten Datenbankinhalten und ‑konfigurationen sowie optional mit Ihren emulierten Projektressourcen (Funktionen, andere Datenbanken und Sicherheitsregeln) interagieren.

Die Verwendung des Authentication-Emulators umfasst nur wenige Schritte:

  1. Fügen Sie der Testkonfiguration Ihrer App eine Codezeile hinzu, um eine Verbindung zum Emulator herzustellen.
  2. Führen Sie im Stammverzeichnis Ihres lokalen Projektverzeichnisses firebase emulators:start aus.
  3. Verwenden Sie die Local Emulator Suite-Benutzeroberfläche für interaktives Prototyping oder die REST API des Authentication-Emulators für nicht interaktive Tests.

Eine detaillierte Anleitung finden Sie unter Anwendung mit dem Authentication-Emulator verbinden. Weitere Informationen finden Sie in der Einführung in Local Emulator Suite.

Sehen wir uns nun an, wie Nutzer authentifiziert werden.

Neue Nutzer registrieren

Erstellen Sie ein Formular, mit dem sich neue Nutzer mit ihrer E-Mail-Adresse und einem Passwort in Ihrer Anwendung 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;
    // ..
  });

Bestehende 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;
  });

Beobachter für den Authentifizierungsstatus festlegen und Nutzerdaten abrufen

Hängen Sie für jede Seite Ihrer App, die Informationen zum angemeldeten Nutzer benötigt, einen Beobachter an das globale Authentifizierungsobjekt an. Dieser Beobachter wird immer dann aufgerufen, wenn sich der Anmeldestatus des Nutzers ändert.

Hängen Sie den Beobachter mit der Methode onAuthStateChanged an. Wenn sich ein Nutzer erfolgreich anmeldet, können Sie im Beobachter Informationen über den Nutzer 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: