| Wybierz platformę: | iOS+ Android Web Flutter Unity |
Skorzystaj z tego przewodnika, jeśli po wykonaniu instrukcji z przewodnika dla początkujących nadal nie widzisz awarii w panelu Crashlytics.
Wymuszanie awarii w celu przetestowania implementacji
Dodaj do aplikacji kod, którego możesz użyć do wymuszenia awarii testowej.
Dodaj do aplikacji React, Next.js lub Angular przycisk testowy lub aktywator trasy, który po kliknięciu wywołuje błąd środowiska wykonawczego:
// Trigger an unhandled exception on button click or route load function handleTestCrash() { throw new Error("Crashlytics Web SDK Test Unhandled Error!"); }Jeśli skonfigurowano automatyczne przechwytywanie błędów za pomocą
<FirebaseCrashlytics>(React lub Next.js),provideCrashlytics(Angular) lub<CrashlyticsRoutes>(React Router), zgłoszenie tego błędu automatycznie przechwytuje wyjątek i planuje jego przesłanie.Skompiluj i uruchom aplikację, a następnie wywołaj błąd testowy, aby aplikacja wysłała do Firebase pierwszy raport o awarii.
W konsoli Firebase otwórz panel DevOps & Engagement > Crashlytics, aby sprawdzić raport o awarii testowej:
Wybierz aplikację internetową w menu u góry strony.
Odśwież stronę. Testowy wyjątek powinien pojawić się w tabeli Problemy w ciągu kilku minut.
Jeśli po odświeżeniu konsoli i odczekaniu 5–10 minut nadal nie widzisz testowej awarii, zapoznaj się z następną sekcją dotyczącą rozwiązywania problemów z konfiguracją.
Rozwiązywanie problemów z konfiguracją
Jeśli po wywołaniu awarii testowej i odczekaniu 5–10 minut nadal nie widzisz raportów w panelu Crashlytics, spróbuj ponownie przeprowadzić proces konfiguracji lub sprawdź te konfiguracje projektu w konsoli:
Ponownie uruchom proces konfiguracji Crashlytics: możesz bezpiecznie ponownie uruchomić polecenie konfiguracji interfejsu wiersza poleceń Firebase (
firebase crashlytics:setup) lub dokończyć konfigurację w konsoli Firebase zgodnie z opisem w kroku 1 przewodnika dla początkujących. Ponowne uruchomienie konfiguracji automatycznie włącza brakujące interfejsy API i naprawia zasobnikfirebase-telemetryCloud Logging oraz ujście routingu.Sprawdź uprawnienia do płatności i uprawnienia IAM: upewnij się, że projekt w Firebase jest objęty abonamentem Blaze z płatnością według wykorzystania, a Twoje konto ma uprawnienia właściciela do projektu podczas wykonywania kroku konfiguracji.
Sprawdź ograniczenia klucza interfejsu API
firebasetelemetry.googleapis.com: na stronie Dane logowania w konsoli Google Cloud wybierz klucz interfejsu API skonfigurowany w obiekciefirebaseConfig(np.Browser key (auto created by Firebase)). Jeśli klucz ma włączone ograniczenia interfejsu API, sprawdź, czy interfejs Firebase Telemetry API (firebasetelemetry.googleapis.com) znajduje się na liście dozwolonych interfejsów API. Jeśli w ograniczonym kluczu interfejsu API brakuje tego celu, żądania przesyłania przez sieć nie powiodą się i w konsoli przeglądarki pojawią się błędy HTTP 403 (Forbidden).Sprawdź włączone interfejsy API Google Cloud: na stronie Włączone interfejsy API i usługi w konsoli Google Cloud sprawdź, czy w Twoim projekcie są włączone interfejsy Firebase Telemetry API (
firebasetelemetry.googleapis.com), Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com), Cloud Logging API (logging.googleapis.com) i Cloud Storage (storage.googleapis.com).Sprawdź, czy analiza logów jest włączona w zasobniku logowania: na stronie Miejsce zajmowane przez logi w konsoli Google Cloud sprawdź, czy zasobnik
firebase-telemetry(lokalizacjaglobal) istnieje i ma włączoną analizę logów. Sprawdź też na stronie Router logów, czy istnieje ujściefirebase-telemetry-routing.
Ręczne przechwytywanie i wywoływanie wyjątku testowego
Jeśli chcesz natychmiast zweryfikować transmisję end-to-end bez czekania na grupowanie w pamięci lub wyładowanie strony, użyj recordError wraz z 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.");
}
Dalsze kroki
Otrzymuj czytelne raporty o awariach – skonfiguruj automatyczne przesyłanie map źródłowych (
.js.map), aby zrzuty stosu w środowisku produkcyjnym zawierały oryginalne nazwy plików i numery wierszy.Dostosowywanie raportów o awariach – dowiedz się, jak zgłaszać obsługiwane wyjątki, dodawać klucze niestandardowe, wymuszać czyszczenie rekordów telemetrycznych i konfigurować próbkowanie.