Testa l'implementazione di Crashlytics (web)

Seleziona la piattaforma: iOS+ Android Web Flutter Unity


Utilizza questa guida se hai seguito la guida introduttiva, ma continui a non visualizzare gli arresti anomali nella dashboard di Crashlytics.

Forza un arresto anomalo per testare l'implementazione

  1. Aggiungi alla tua app il codice che puoi utilizzare per forzare un arresto anomalo di test.

    Aggiungi un pulsante di test o un trigger di route alla tua app React, Next.js o Angular che genera un errore di runtime quando viene fatto clic:

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

    Se hai configurato l'acquisizione automatica degli errori con <FirebaseCrashlytics> (React o Next.js), provideCrashlytics (Angular) o <CrashlyticsRoutes> (React Router), la generazione di questo errore acquisisce automaticamente l'eccezione e ne pianifica il caricamento.

  2. Crea ed esegui l'app, quindi attiva l'errore di test in modo che l'app invii il primo report sugli arresti anomali a Firebase.

  3. Nella console Firebase, vai alla dashboard DevOps e coinvolgimento > Crashlytics per verificare la presenza del report sugli arresti anomali di test:

    1. Seleziona la tua app web dal selettore a discesa nella parte superiore della pagina.

    2. Aggiorna la pagina. L'eccezione di test dovrebbe essere visualizzata nella tabella Problemi entro pochi minuti.

Se hai aggiornato la console e continui a non vedere l'arresto anomalo di test dopo 5-10 minuti, consulta la sezione successiva sulla risoluzione dei problemi di configurazione.

Risolvi i problemi di configurazione

Se hai attivato un arresto anomalo di test e continui a non visualizzare i report nella dashboard di Crashlytics dopo 5-10 minuti, prova a eseguire nuovamente il flusso di configurazione o a verificare le seguenti configurazioni del progetto nella console:

  • Esegui nuovamente il flusso di configurazione di Crashlytics: puoi eseguire nuovamente in sicurezza il comando di configurazione dell'interfaccia a riga di comando Firebase (firebase crashlytics:setup) o completare la configurazione nella console Firebase come descritto nel passaggio 1 della guida introduttiva. La riesecuzione della configurazione attiva automaticamente le API mancanti e ripara il bucket firebase-telemetry Cloud Logging e il sink di routing.

  • Controlla la fatturazione e le autorizzazioni IAM: assicurati che il tuo progetto Firebase sia nel piano tariffario Blaze con pagamento a consumo e che il tuo account disponga delle autorizzazioni di proprietario sul progetto durante l'esecuzione del passaggio di configurazione.

  • Verifica le restrizioni della chiave API firebasetelemetry.googleapis.com: nella pagina Credenziali della console Google Cloud, seleziona la chiave API configurata nell'oggetto firebaseConfig (ad esempio Browser key (auto created by Firebase)). Se la chiave ha restrizioni API abilitate, verifica che l'API Firebase Telemetry (firebasetelemetry.googleapis.com) sia inclusa nell'elenco delle API consentite. Se questa destinazione non è presente in una chiave API con limitazioni, le richieste di caricamento di rete non vanno a buon fine con errori HTTP 403 (Accesso negato) nella console del browser.

  • Controlla le API Google Cloud abilitate: nella pagina API e servizi abilitati della console Google Cloud, verifica che l'API Firebase Telemetry (firebasetelemetry.googleapis.com), l'API di amministrazione Firebase Telemetry (firebasetelemetryadmin.googleapis.com), l'API Cloud Logging (logging.googleapis.com) e l'Cloud Storage (storage.googleapis.com) siano abilitate per il tuo progetto.

  • Verifica Analisi dei log sul bucket di logging: nella pagina Archiviazione dei log della console Google Cloud, verifica che il bucket firebase-telemetry (località global) esista e che Analisi dei log sia abilitata, quindi controlla la pagina Router dei log per confermare che il sink firebase-telemetry-routing esista.

Acquisisci e svuota manualmente un'eccezione di test

Se vuoi verificare immediatamente la trasmissione end-to-end senza attendere il batching della memoria o lo scaricamento della pagina, utilizza recordError insieme a 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.");
}

Passaggi successivi