| Wybierz platformę: | iOS+ Android Web Flutter Unity |
W konsoli Firebase (DevOps i zaangażowanie > panel Crashlytics) możesz kliknąć problem, aby wyświetlić szczegółowy raport Zdarzenia. Możesz dostosowywać te raporty i zarządzać zbieraniem danych telemetrycznych, aby lepiej zrozumieć, co dzieje się w aplikacji internetowej:
- Zgłaszanie obsłużonych wyjątków w sposób automatyczny
- Dodawanie kluczy niestandardowych
- Wymuszanie czyszczenia rekordów telemetrycznych w przypadku krótkotrwałych procedur
- Konfigurowanie częstotliwości próbkowania
- Wyłączanie i włączanie zbierania danych telemetrycznych
Zgłaszanie obsłużonych wyjątków automatycznie
Możesz ręcznie rejestrować obsłużone wyjątki za pomocą metody recordError. Błędy routingu i nieobsługiwane wyjątki są automatycznie przechwytywane przez granice błędów platformy.
Oto jak śledzić częstość występowania błędów i atrybuty diagnostyczne u użytkowników:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function submitPaymentForm() {
try {
await api.processTransaction();
} catch (error) {
// Manually record handled exceptions with diagnostic context
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2
});
showFallbackBanner(error);
}
}
Dodawanie kluczy niestandardowych
Niestandardowe klucze metadanych pomagają zrozumieć konkretny stan aplikacji lub przepływ pracy użytkownika, który doprowadził do awarii.
Możesz rejestrować aktywność użytkowników, stany sesji i szczegóły diagnostyczne bezpośrednio jako atrybuty niestandardowe klucz-wartość, używając opcjonalnego parametru metadanych podczas wywoływania recordError:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script
const crashlytics = getCrashlytics(app);
// Pass custom key-value diagnostic metadata within recordError
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2,
breadcrumb: 'User opened shopping cart',
lastAction: 'Click Checkout Button'
});
Te atrybuty niestandardowe są przechowywane w raporcie o wyjątkach i pojawiają się na karcie Klucze w widoku problemu w Crashlytics panelu.
Wymuś czyszczenie rekordów telemetrycznych
Domyślnie silnik telemetrii internetowej grupuje logi w segmenty pamięci, aby oszczędzać baterię, wydajność procesora i przepustowość sieci. Jednak w przypadku krótkotrwałych środowisk wykonawczych logi muszą zostać przesłane bezpośrednio przed zniszczeniem kontekstu wykonania.
Możesz użyć asynchronicznego polecenia flush, aby natychmiast wysłać wszystkie błędy z kolejki do backendu:
import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function handleApplicationCrash(error: Error) {
// Capture the error with immediate priority
recordError(crashlytics, error, { priority: 'IMMEDIATE' });
// Force an immediate upload before the process terminates or reloads
await flush(crashlytics);
// Safe to terminate or refresh the current execution context
window.location.reload();
}
Konfigurowanie częstotliwości próbkowania
Jeśli próbkujesz część sesji użytkowników, aby kontrolować ilość i koszt danych telemetrycznych, możesz skonfigurować próbkowanie za pomocą dowolnej z tych opcji:
- Opcja 1 (zalecana): skonfiguruj częstotliwość próbkowania w konsoli Firebase
- Opcja 2. Ustaw częstotliwość próbkowania za pomocą interfejsu Firebase Telemetry Admin API
Opcja 1 (zalecana): skonfiguruj częstotliwość próbkowania w konsoli Firebase
W konsoli Firebase otwórz panel DevOps i zaangażowanie > Crashlytics.
Wybierz aplikację internetową w menu u góry strony.
W prawym górnym rogu panelu kliknij Skonfiguruj próbkowanie.
Ustaw wartość procentową Częstotliwości próbkowania (od
0%do100%), aby kontrolować odsetek zdarzeń i sesji zbieranych od klientów.
Opcja 2. Ustawianie częstotliwości próbkowania za pomocą interfejsu Firebase Telemetry Admin API
Możesz używać interfejsu Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com/v1alpha) do zarządzania ustawieniami zbierania danych telemetrycznych w aplikacjach w Firebase.
Skonfiguruj w terminalu te wymagane zmienne:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)Znajdź CONFIG_NAME, a następnie skonfiguruj go jako zmienną w terminalu:
Ustawieniami telemetrii zarządza się za pomocą zasobu
Config, więc musisz znaleźć konkretny zasób CONFIG_NAME dla swojej aplikacji internetowej.Wyświetl listę konfiguracji w projekcie i odfiltruj je według FIREBASE_APP_ID. Flagi
curl -Gi--data-urlencodezapewniają, że ciąg filtra AIP-160 jest prawidłowo zakodowany w adresie URL:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"W odpowiedzi JSON znajdź pole
nameaplikacji (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>), a następnie ustaw je jako zmiennąCONFIG_NAME:CONFIG_NAME="CONFIG_NAME"
Ustaw częstotliwość próbkowania:
Aby dostosować częstotliwość próbkowania, użyj metody
PATCH, aby zaktualizować polesampling_rate. W parametrach zapytania musisz podaćupdateMask=sampling_rate. Częstotliwość próbkowania to wartość podwójnej precyzji, która reprezentuje odsetek sesji do zebrania (np.0.25dla 25%):# Example: Set sampling rate to 25% curl -X PATCH \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"sampling_rate\": 0.25, \"app_id\": \"${APP_ID}\" }" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}?updateMask=sampling_rate"
Wyłączanie i włączanie zbierania danych telemetrycznych
Domyślnie zbieranie danych telemetrycznych jest włączone, gdy skonfigurujesz Crashlytics w aplikacji internetowej. Jeśli po zainstalowaniu pakietu SDK Crashlytics musisz dynamicznie wyłączyć lub ponownie włączyć zbieranie danych telemetrycznych, możesz zarządzać punktami końcowymi zbierania danych za pomocą interfejsu Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com/v1alpha).
Zanim wyłączysz lub włączysz dane telemetryczne, musisz ustawić te zmienne:
Skonfiguruj w terminalu te wymagane zmienne:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)Znajdź CONFIG_NAME, a następnie skonfiguruj go jako zmienną w terminalu:
Ustawieniami telemetrii zarządza się za pomocą zasobu
Config, więc musisz znaleźć konkretny zasób CONFIG_NAME dla swojej aplikacji internetowej.Wyświetl listę konfiguracji w projekcie i odfiltruj je według FIREBASE_APP_ID. Flagi
curl -Gi--data-urlencodezapewniają, że ciąg filtra AIP-160 jest prawidłowo zakodowany w adresie URL:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"W odpowiedzi JSON znajdź pole
nameaplikacji (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>), a następnie ustaw je jako zmiennąCONFIG_NAME:CONFIG_NAME="CONFIG_NAME"
Wyłączanie zbierania danych telemetrycznych
Aby wyłączyć zbieranie danych telemetrycznych, użyj metody niestandardowej :disable:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:disable"
Ponowne włączanie zbierania danych telemetrycznych
Aby ponownie włączyć zbieranie danych telemetrycznych, wywołaj metodę :enable:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:enable"