Crashlytics-Implementierung testen (Web)

Plattform auswählen: iOS+ Android Web Flutter Unity


Verwenden Sie diesen Leitfaden, wenn Sie den Startleitfaden befolgt haben und im Crashlytics-Dashboard immer noch keine Abstürze angezeigt werden.

Absturz erzwingen, um die Implementierung zu testen

  1. Fügen Sie Ihrer App Code hinzu, mit dem Sie einen Testabsturz erzwingen können.

    Fügen Sie Ihrer React-, Next.js- oder Angular-Anwendung einen Test-Button oder einen Routen-Trigger hinzu, der beim Klicken einen Laufzeitfehler auslöst:

    // Trigger an unhandled exception on button click or route load
    function handleTestCrash() {
      throw new Error("Crashlytics Web SDK Test Unhandled Error!");
    }
    

    Wenn Sie die automatische Fehlererfassung mit <FirebaseCrashlytics> (React oder Next.js), provideCrashlytics (Angular) oder <CrashlyticsRoutes> (React Router) konfiguriert haben, wird die Ausnahme automatisch erfasst und für den Upload geplant, wenn dieser Fehler ausgelöst wird.

  2. Erstellen Sie Ihre App und führen Sie sie aus. Lösen Sie dann den Testfehler aus, damit Ihre App den ersten Absturzbericht an Firebase sendet.

  3. Rufen Sie in der Firebase-Konsole das Dashboard DevOps & Engagement > Crashlytics auf, um nach dem Testabsturzbericht zu suchen:

    1. Wählen Sie oben auf der Seite im Drop-down-Menü Ihre Web-App aus.

    2. Aktualisieren Sie die Seite. Die Testausnahme sollte innerhalb weniger Minuten in der Tabelle Probleme angezeigt werden.

Wenn Sie die Console aktualisiert haben und der Testabsturz nach fünf bis zehn Minuten immer noch nicht angezeigt wird, lesen Sie den nächsten Abschnitt zur Fehlerbehebung.

Probleme mit der Einrichtung beheben

Wenn Sie einen Testabsturz ausgelöst haben und nach fünf bis zehn Minuten immer noch keine Berichte im Crashlytics-Dashboard sehen, führen Sie die Einrichtung noch einmal aus oder prüfen Sie die folgenden Projektkonfigurationen in der Console:

  • Crashlytics-Einrichtung noch einmal ausführen: Sie können den Firebase-Befehlszeilen-Einrichtungsbefehl (firebase crashlytics:setup) noch einmal ausführen oder die Einrichtung in der Firebase-Konsole abschließen, wie in Schritt 1 des Startleitfadens beschrieben. Wenn Sie die Einrichtung noch einmal ausführen, werden alle fehlenden APIs automatisch aktiviert und der firebase-telemetry-Cloud Logging-Bucket und die Routing-Senke werden repariert.

  • Abrechnung und IAM-Berechtigungen prüfen: Achten Sie darauf, dass für Ihr Firebase-Projekt das Blaze-Preismodell (Pay as you go) gilt und dass Ihr Konto beim Ausführen des Einrichtungsschritts die Berechtigung Inhaber für das Projekt hat.

  • firebasetelemetry.googleapis.com-API-Schlüsseleinschränkungen prüfen: Wählen Sie in der Google Cloud-Konsole auf der Seite Anmeldedaten den API-Schlüssel aus, der in Ihrem firebaseConfig-Objekt konfiguriert ist (z. B. Browser key (auto created by Firebase)). Wenn für den Schlüssel API-Einschränkungen aktiviert sind, prüfen Sie, ob die Firebase Telemetry API (firebasetelemetry.googleapis.com) in der Liste der zulässigen APIs enthalten ist. Wenn dieses Ziel in einem eingeschränkten API-Schlüssel fehlt, schlagen Netzwerkuploadanfragen mit HTTP 403-Fehlern (Forbidden) in Ihrer Browserkonsole fehl.

  • Aktivierte Google Cloud APIs prüfen: Prüfen Sie in der Google Cloud-Konsole auf der Seite Aktivierte APIs und Dienste, ob die Firebase Telemetry API (firebasetelemetry.googleapis.com), die Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com), die Cloud Logging API (logging.googleapis.com) und Cloud Storage (storage.googleapis.com) für Ihr Projekt aktiviert sind.

  • Loganalyse für den Logging-Bucket prüfen: Prüfen Sie in der Google Cloud-Konsole auf der Seite Logspeicher, ob der Bucket firebase-telemetry (Standort global) vorhanden ist und Loganalyse aktiviert ist. Prüfen Sie auf der Seite Log Router, ob die Senke firebase-telemetry-routing vorhanden ist.

Testausnahme manuell erfassen und leeren

Wenn Sie die End-to-End-Übertragung sofort überprüfen möchten, ohne auf die Speicher-Batchverarbeitung oder das Entladen von Seiten zu warten, verwenden Sie recordError zusammen mit flush:

import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script

const crashlytics = getCrashlytics(app);

async function triggerImmediateTestCrash() {
  const error = new Error("Crashlytics Web SDK Test Handled Error!");
  // Capture the error with immediate priority and custom diagnostic metadata
  recordError(crashlytics, error, {
    priority: 'IMMEDIATE',
    testEvent: true,
    environment: 'staging_verification'
  });
  // Force an immediate upload before the browser terminates or reloads
  await flush(crashlytics);
  console.log("Test error flushed to Crashlytics successfully.");
}

Nächste Schritte

  • Lesbare Absturzberichte erhalten: Richten Sie das automatische Hochladen von Quellzuordnungen (.js.map) ein, damit in Ihren Produktions-Stacktraces die ursprünglichen Dateinamen und Zeilennummern angezeigt werden.

  • Absturzberichte anpassen: Hier erfahren Sie, wie Sie behandelte Ausnahmen melden, benutzerdefinierte Schlüssel hinzufügen, Telemetriedatensätze erzwingen und die Stichprobenerhebung konfigurieren.