השבתת מעקב אחר ביצועים ב-Firebase


במהלך הפיתוח והבדיקות של האפליקציה, יכול להיות שיהיה לכם שימושי להשבית את התכונה 'מעקב אחר ביצועים'.

לדוגמה, אם משביתים את התכונה 'מעקב אחר ביצועים' במהלך תהליך בניית האפליקציה, אפשר:

  • להשבית פונקציות מסוימות של 'מעקב אחר ביצועים' בגרסאות הניפוי באגים, אבל להפעיל מחדש את הפונקציות בגרסת ההפצה.

  • משביתים את התכונה 'מעקב אחרי ביצועים' כשמפתחים את האפליקציה, אבל מאפשרים לאפליקציה להפעיל אותה מחדש בזמן הריצה.

  • כדאי להשבית את התכונה 'מעקב אחר ביצועים' כשמפתחים את האפליקציה, ולא לאפשר לאפליקציה להפעיל אותה מחדש בזמן הריצה.

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

השבתת מעקב אחר ביצועים במהלך תהליך בניית האפליקציה

אחד המקרים שבהם כדאי להשבית את 'מעקב אחר ביצועים' במהלך תהליך בניית האפליקציה הוא כדי להימנע מדיווח על נתוני ביצועים מגרסת טרום-הפצה של האפליקציה במהלך הפיתוח והבדיקה שלה.

לשם כך, אפשר לעיין במסמכי התיעוד של iOS+‎ ושל Android.

השבתה של האפליקציה בזמן הריצה באמצעות הגדרת תצורה מרחוק

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

לדוגמה, נניח שרוצים להשתמש בפרמטר שנקרא perf_disable כדי לשלוט מרחוק ב'מעקב אחר ביצועים'. מוסיפים את הקוד הבא לקוד ההפעלה כדי להפעיל או להשבית את Performance Monitoring:

// Activate previously-fetched values, falling back on the defaults if
// nothing is available yet.
await FirebaseRemoteConfig.instance
    .setDefaults(YOUR_REMOTE_CONFIG_DEFAULTS);
await FirebaseRemoteConfig.instance.activate();

// Enable or disable Performance Monitoring based on the value of
// "perf_disable".
final perfMonDisabled =
    FirebaseRemoteConfig.instance.getBool("perf_disable");
FirebasePerformance.instance
    .setPerformanceCollectionEnabled(!perfMonDisabled);

// Fetch values for next time. (Don't await the result!)
FirebaseRemoteConfig.instance.fetch();