| 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
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.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.
Nella console Firebase, vai alla dashboard DevOps e coinvolgimento > Crashlytics per verificare la presenza del report sugli arresti anomali di test:
Seleziona la tua app web dal selettore a discesa nella parte superiore della pagina.
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 bucketfirebase-telemetryCloud 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'oggettofirebaseConfig(ad esempioBrowser 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 sinkfirebase-telemetry-routingesista.
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
Genera report sugli arresti anomali leggibili — Configura il caricamento automatico dei file di mappatura di origine (
.js.map) in modo che le analisi dello stack di produzione mostrino i nomi file e i numeri di riga originali.Personalizza i report sugli arresti anomali : scopri come segnalare le eccezioni gestite, aggiungere chiavi personalizzate, forzare lo svuotamento dei record di telemetria e configurare il campionamento.