בדיקת ההטמעה של Crashlytics (באינטרנט)

בחירת פלטפורמה: iOS+‎ Android אינטרנט Flutter Unity


המדריך הזה מיועד למי שפעל לפי המדריך לתחילת הדרך, אבל עדיין לא רואה קריסות במרכז הבקרה של Crashlytics.

איך מאלצים קריסה כדי לבדוק את ההטמעה

  1. מוסיפים לאפליקציה קוד שמאפשר לאלץ קריסה לבדיקה.

    מוסיפים לאפליקציה ב-React, ב-Next.js או ב-Angular כפתור בדיקה או טריגר לניתוב, שבלחיצה עליהם נזרקת שגיאת זמן ריצה:

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

    אם הגדרתם תיעוד שגיאות אוטומטי באמצעות <FirebaseCrashlytics> (React או Next.js),‏ provideCrashlytics (Angular) או <CrashlyticsRoutes> (React Router), זריקת השגיאה הזו מתעדת את החריגה באופן אוטומטי ומתזמנת את ההעלאה שלה.

  2. מפתחים ומריצים את האפליקציה, ואז מפעילים את שגיאת הבדיקה כדי שהאפליקציה תשלח את דוח הקריסה הראשון שלה ל-Firebase.

  3. במסוף Firebase, עוברים אל DevOps & Engagement (DevOps ומעורבות) > לוח הבקרה של Crashlytics כדי לבדוק את דוח הקריסה לבדיקה:

    1. בוחרים את אפליקציית האינטרנט מהתפריט הנפתח בחלק העליון של הדף.

    2. רענון הדף החריגה לבדיקה אמורה להופיע בטבלה Issues תוך כמה דקות.

אם רעננתם את המסוף ועדיין לא רואים את קריסת הבדיקה אחרי חמש עד עשר דקות, עיינו בקטע הבא בנושא פתרון בעיות בהגדרה.

פתרון בעיות בהגדרה

אם הפעלתם קריסה לבדיקה ואתם עדיין לא רואים דוחות בלוח הבקרה של Crashlytics אחרי חמש עד עשר דקות, נסו להריץ מחדש את תהליך ההגדרה או לאמת את הגדרות הפרויקט הבאות במסוף:

  • מפעילים מחדש את תהליך ההגדרה של Crashlytics: אפשר להפעיל מחדש את פקודת ההגדרה של ה-CLI של Firebase (firebase crashlytics:setup) או להשלים את ההגדרה במסוף Firebase, כמו שמתואר בשלב 1 במדריך לתחילת הדרך. הפעלה מחדש של ההגדרה מפעילה באופן אוטומטי את כל ממשקי ה-API החסרים ומתקנת את הקטגוריה firebase-telemetry Cloud Logging ואת כיור הניתוב.

  • בדיקת החיוב והרשאות ה-IAM: ודאו שפרויקט Firebase שלכם נמצא בתוכנית התמחור Blaze בתשלום לפי שימוש, ושלחשבון שלכם יש הרשאות בעלים בפרויקט כשאתם מריצים את שלב ההגדרה.

  • אימות ההגבלות על מפתח ה-API של firebasetelemetry.googleapis.com: בדף Credentials במסוף Google Cloud, בוחרים את מפתח ה-API שהוגדר באובייקט firebaseConfig (לדוגמה, Browser key (auto created by Firebase)). אם הופעלו הגבלות על מפתח ה-API, מוודאים ש-Firebase Telemetry API ‏(firebasetelemetry.googleapis.com) נכלל ברשימת ממשקי ה-API המורשים. אם היעד הזה חסר במפתח API מוגבל, בקשות ההעלאה ברשת נכשלות ומופיעות שגיאות HTTP 403 (אסור) במסוף הדפדפן.

  • בדיקת ממשקי ה-API של Google Cloud שמופעלים: במסוף Google Cloud, בדף Enabled APIs & services, מוודאים שממשקי ה-API הבאים מופעלים בפרויקט: Firebase Telemetry API ‏(firebasetelemetry.googleapis.com),‏ Firebase Telemetry Admin API ‏(firebasetelemetryadmin.googleapis.com), ‏ Cloud Logging API ‏(logging.googleapis.com) ו-Cloud Storage ‏(storage.googleapis.com).

  • אימות של ניתוח נתוני היומן בקטגוריית היומן: בGoogle Cloud, בדף Logs Storage, מוודאים שהקטגוריה firebase-telemetry (מיקום global) קיימת ושהאפשרות Log Analytics מופעלת, ובודקים את הדף Log Router כדי לוודא שהכיור firebase-telemetry-routing קיים.

תיעוד וניקוי ידני של חריגה בבדיקה

אם רוצים לאמת באופן מיידי את השידור מקצה לקצה בלי להמתין לאיסוף הנתונים בזיכרון או לפריקת הדף, משתמשים ב-recordError יחד עם 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.");
}

השלבים הבאים

  • קבלת דוחות קריסות קריאים — הגדרת העלאה אוטומטית של מפות מקור (.js.map) כדי שדוחות הקריסות בסביבת הייצור יציגו את שמות הקבצים ומספרי השורות המקוריים.

  • התאמה אישית של דוחות קריסה – איך לדווח על חריגות שטופלו, להוסיף מפתחות בהתאמה אישית, לאלץ מחיקה של רשומות טלמטריה ולהגדיר דגימה.