Crashlytics uygulamanızı test etme (web)

Platform seçin: iOS+ Android Web Flutter Unity


Başlangıç kılavuzundaki adımları uygulamanıza rağmen Crashlytics kontrol panelinde kilitlenme görmüyorsanız bu kılavuzu kullanın.

Uygulamanızı test etmek için kilitlenme oluşturma

  1. Uygulamanıza, test amaçlı kilitlenme zorlamak için kullanabileceğiniz bir kod ekleyin.

    React, Next.js veya Angular uygulamanıza tıklandığında çalışma zamanı hatası veren bir test düğmesi ya da rota tetikleyicisi ekleyin:

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

    <FirebaseCrashlytics> (React veya Next.js), provideCrashlytics (Angular) ya da <CrashlyticsRoutes> (React Router) ile otomatik hata yakalamayı yapılandırdıysanız bu hatanın oluşturulması, istisnayı otomatik olarak yakalar ve yüklenmek üzere planlar.

  2. Uygulamanızı derleyip çalıştırın, ardından test hatasını tetikleyerek uygulamanızın ilk kilitlenme raporunu Firebase'e göndermesini sağlayın.

  3. Test kilitlenme raporunuzu kontrol etmek için Firebase konsolunda DevOps & Engagement > Crashlytics dashboard (DevOps ve Etkileşim > kontrol paneli) bölümüne gidin:

    1. Sayfanın üst kısmındaki açılır seçiciden web uygulamanızı seçin.

    2. Sayfayı yenileyin. Test istisnanız birkaç dakika içinde Sorunlar tablosunda görünür.

Konsolu yenilediyseniz ve beş ila on dakika sonra test kilitlenmesini hâlâ görmüyorsanız kurulumunuzla ilgili sorunları giderme hakkındaki bir sonraki bölüme bakın.

Kurulumunuzla ilgili sorunları giderme

Test amaçlı bir kilitlenme tetiklediyseniz ve beş ila on dakika sonra Crashlytics kontrol panelinde hâlâ rapor görmüyorsanız kurulum akışını yeniden çalıştırmayı veya konsolda aşağıdaki proje yapılandırmalarını doğrulamayı deneyin:

  • Crashlytics kurulum akışını yeniden çalıştırın: Firebase CLI kurulum komutunu (firebase crashlytics:setup) güvenle yeniden çalıştırabilir veya Başlangıç kılavuzunun 1. adımında açıklandığı gibi Firebase konsolunda kurulumu tamamlayabilirsiniz. Kurulumu yeniden çalıştırmak, eksik API'leri otomatik olarak etkinleştirir ve firebase-telemetry Cloud Logging paketini ve yönlendirme havuzunu onarır.

  • Faturalandırma ve IAM izinlerini kontrol edin: Firebase projenizin kullandıkça öde Blaze fiyatlandırma planında olduğundan ve kurulum adımını çalıştırırken hesabınızın projede Sahip izinlerine sahip olduğundan emin olun.

  • firebasetelemetry.googleapis.com API anahtarı kısıtlamalarını doğrulayın: Google Cloud konsolunun Kimlik bilgileri sayfasında, firebaseConfig nesnenizde (ör. Browser key (auto created by Firebase)) yapılandırılan API anahtarını seçin. Anahtarda API kısıtlamaları etkinleştirilmişse Firebase Telemetry API'nin (firebasetelemetry.googleapis.com) izin verilen API'ler listesine eklendiğini doğrulayın. Bu hedef kısıtlanmış bir API anahtarında yoksa ağ yükleme istekleri, tarayıcı konsolunuzda HTTP 403 (Yasak) hatalarıyla başarısız olur.

  • Etkin Google Cloud API'lerini kontrol edin: Google Cloud konsolunun Etkin API'ler ve hizmetler sayfasında projeniz için Firebase Telemetry API (firebasetelemetry.googleapis.com), Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com), Cloud Logging API (logging.googleapis.com) ve Cloud Storage (storage.googleapis.com) API'lerinin etkinleştirildiğini doğrulayın.

  • Günlük kaydı paketinde Günlük Analizi'ni doğrulama: Google Cloud konsolunun Günlük Depolama Alanı sayfasında firebase-telemetry paketinin (global konumu) mevcut olduğunu ve Günlük Analizi'nin etkinleştirildiğini doğrulayın. firebase-telemetry-routing havuzunun mevcut olduğunu onaylamak için Günlük Yönlendirici sayfasını kontrol edin.

Test istisnasını manuel olarak yakalama ve temizleme

Bellek gruplandırmasını veya sayfa yüklemelerinin kaldırılmasını beklemeden uçtan uca aktarımı hemen doğrulamak istiyorsanız flush ile birlikte recordError kullanın:

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.");
}

Sonraki adımlar

  • Okunabilir kilitlenme raporları alın : Otomatik kaynak eşleme (.js.map) yüklemesini ayarlayarak üretim yığın izlemelerinizin orijinal dosya adlarını ve satır numaralarını göstermesini sağlayın.

  • Kilitlenme raporlarını özelleştirme — İşlenen istisnaları bildirmeyi, özel anahtarlar eklemeyi, telemetri kayıtlarını zorla temizlemeyi ve örneklemeyi yapılandırmayı öğrenin.