إيقاف مراقبة أداء Firebase

للسماح للمستخدمين بتفعيل استخدام Firebase Performance Monitoring أو إيقاف استخدامه، يمكنك: تريد إعداد تطبيقك لتتمكن من تفعيل Performance Monitoring وإيقافه. إِنْتَ قد تجد أيضًا هذه الإمكانية مفيدة أثناء تطوير التطبيق واختباره.

في ما يلي بعض الخيارات التي يجب وضعها في الاعتبار:

  • يمكنك إيقاف حزمة تطوير البرامج (SDK) "Performance Monitoring" عند إنشاء تطبيقك، مع خيار إعادة تفعيلها في وقت التشغيل

  • يمكنك إنشاء تطبيقك باستخدام حزمة تطوير البرامج (SDK) "Performance Monitoring" مفعَّلة، ولكن يتوفّر لك الخيار لإيقافه في وقت التشغيل باستخدام Firebase Remote Config.

  • يمكنك إيقاف حزمة تطوير البرامج (SDK) "Performance Monitoring" تمامًا، بدون خيار لتفعيلها. في وقت التشغيل

إيقاف "Performance Monitoring" أثناء عملية إنشاء تطبيقك

أحد المواقف التي يمكن أن يتم فيها إيقاف "Performance Monitoring" أثناء عملية إنشاء تطبيقك مفيدة هي تجنب الإبلاغ عن بيانات الأداء من إصدار تجريبي تطبيقك أثناء تطويره واختباره.

لإيقاف أو إيقاف Performance Monitoring، يمكنك إضافة أحد مفتاحَين إلى ملف قائمة الخصائص (Info.plist) لتطبيق Apple:

  • لإيقاف "Performance Monitoring" مع السماح لتطبيقك بتفعيلها في وقت التشغيل، اضبط القيمة من firebase_performance_collection_enabled إلى false في تطبيقك ملف Info.plist.

  • لإيقاف "Performance Monitoring" تمامًا، مع عدم توفّر خيار لتفعيله في وقت التشغيل، ضبط firebase_performance_collection_deactivated على true في قسم ملف Info.plist.

إيقاف التطبيق في وقت التشغيل باستخدام "Remote Config"

يتيح لك Firebase Remote Config إجراء تغييرات على السلوك والمظهر في تطبيقك، لذا فهو يوفّر الطريقة المثالية للسماح لك بإيقاف Performance Monitoring من خلال المثيلات المنشورة لتطبيقك.

لإيقاف جمع بيانات "Performance Monitoring" في المرة القادمة التي يتم فيها تشغيل تطبيق Apple، يُرجى اتّباع الخطوات التالية: فاستخدم الرمز النموذجي الموضح أدناه. لمزيد من المعلومات حول استخدام Remote Config في أحد تطبيقات Apple، اطّلِع على استخدام Firebase Remote Config على أنظمة Apple الأساسية

  1. عليك التأكّد من استخدام Remote Config في Podfile:

    pod 'Firebase/RemoteConfig'
    
  2. أضِف ما يلي في أعلى ملف AppDelegate لتطبيقك:

    Swift

    ملاحظة: لا يتوفّر منتج Firebase هذا على أنظمة التشغيل macOS وMac Catalyst وwatchOS.
    import FirebaseRemoteConfig
    

    Objective-C

    ملاحظة: لا يتوفّر منتج Firebase هذا على أنظمة التشغيل macOS وMac Catalyst وwatchOS.
    @import FirebaseRemoteConfig;
    
  3. في ملف AppDelegate، أضِف الرمز التالي إلى launchOptions. العبارات في المثيل application:didFinishLaunchingWithOptions: :

    Swift

    ملاحظة: لا يتوفّر هذا المنتج على أنظمة التشغيل macOS وMac Catalyst وwatchOS.
    remoteConfig = RemoteConfig.remoteConfig()
    // You can change the "false" below to "true" to permit more fetches when validating
    // your app, but you should change it back to "false" or remove this statement before
    // distributing your app in production.
    let remoteConfigSettings = RemoteConfigSettings(developerModeEnabled: false)
    remoteConfig.configSettings = remoteConfigSettings!
    // Load in-app defaults from a plist file that sets perf_disable to false until
    // you update values in the Firebase console.
    remoteConfig.setDefaultsFromPlistFileName("RemoteConfigDefaults")
    // Important! This needs to be applied before FirebaseApp.configure()
    if !remoteConfig["perf_disable"].boolValue {
        // The following line disables all automatic (out-of-the-box) monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
        // The following line disables all custom monitoring
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objective-C

    ملاحظة: لا يتوفّر منتج Firebase هذا على أنظمة التشغيل macOS وMac Catalyst وwatchOS.
    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    // You can change the NO below to YES to permit more fetches when validating
    // your app, but you should change it back to NO or remove this statement before
    // distributing your app in production.
    FIRRemoteConfigSettings *remoteConfigSettings =
        [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:NO];
    self.remoteConfig.configSettings = remoteConfigSettings;
    // Load in-app defaults from a plist file that sets perf_disable to false until
    // you update values in the Firebase console.
    [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
    // Important! This needs to be applied before [FIRApp configure]
    if (!self.remoteConfig[@"perf_disable"].numberValue.boolValue) {
        // The following line disables all automatic (out-of-the-box) monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
        // The following line disables all custom monitoring
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. في ملف ViewController.m أو ملف تنفيذ آخر استخدمه تطبيقك، أضف الرمز التالي لاسترجاع قيم Remote Config وتفعيلها:

    Swift

    ملاحظة: لا يتوفّر منتج Firebase هذا على أنظمة التشغيل macOS وMac Catalyst وwatchOS.
    //RemoteConfig fetch and activation in your app, shortly after startup
    remoteConfig.fetch(withExpirationDuration: TimeInterval(30.0)) { (status, error) -> Void in
      if status == .success {
        print("Config fetched!")
        self.remoteConfig.activateFetched()
      } else {
        print("Config not fetched")
        print("Error \(error!.localizedDescription)")
      }
    }
    

    Objective-C

    ملاحظة: لا يتوفّر منتج Firebase هذا على أنظمة التشغيل macOS وMac Catalyst وwatchOS.
    //RemoteConfig fetch and activation in your app, shortly after startup
    [self.remoteConfig fetchWithExpirationDuration:30.0 completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
      if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
        [self.remoteConfig activateFetched];
      } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
      }
    }];
    
  5. لإيقاف Performance Monitoring في وحدة تحكّم Firebase، عليك إنشاء perf_disable. في مشروع تطبيقك، ثم اضبط قيمتها على true.

    في حال ضبط قيمة perf_disable على false، سيظل Performance Monitoring. مفعّلة.

إيقاف جمع البيانات التلقائي أو المخصّص بشكلٍ منفصل

يمكنك إجراء بعض التغييرات على الرمز الوارد أعلاه وفي وحدة تحكُّم Firebase. للسماح لك بتعطيل جميع المراقبة التلقائية (الجاهزة) بشكل منفصل عن المراقبة المخصصة.

  1. أضِف الرمز التالي إلى جُمل launchOptions في طريقة المثيل application:didFinishLaunchingWithOptions: (بدلاً من ما يظهر أعلاه لطريقة المثيل نفسها):

    Swift

    ملاحظة: لا يتوفّر منتج Firebase هذا على أنظمة التشغيل macOS وMac Catalyst وwatchOS.
    remoteConfig = FIRRemoteConfig.remoteConfig()
    let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: true)
    remoteConfig.configSettings = remoteConfigSettings!
    // Important! This needs to be applied before FirebaseApp.configure()
    if remoteConfig["perf_disable_auto"].boolValue {
        // The following line disables all automatic (out-of-the-box) monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
    }
    if remoteConfig["perf_disable_manual"].boolValue {
        // The following line disables all custom monitoring
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objective-C

    ملاحظة: لا يتوفّر منتج Firebase هذا على أنظمة التشغيل macOS وMac Catalyst وwatchOS.
    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    FIRRemoteConfigSettings *remoteConfigSettings =
        [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:YES];
    self.remoteConfig.configSettings = remoteConfigSettings;
    // Important! This needs to be applied before [FirebaseApp configure]
    if (self.remoteConfig[@"perf_disable_auto"].numberValue.boolValue) {
        // The following line disables all automatic (out-of-the-box) monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
    }
    if (self.remoteConfig[@"perf_disable_manual"].numberValue.boolValue) {
        // The following line disables all custom monitoring
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FirebaseApp configure];
    
  2. أكمِل الخطوات التالية في وحدة تحكُّم Firebase:

    • لإيقاف جميع المراقبة التلقائية (الجاهزة)، يمكنك إنشاء perf_disable_auto في مشروع تطبيقك، ثم اضبط إلى true.
    • لإيقاف جميع المراقبة المخصّصة، أنشئ perf_disable_manual. في مشروع تطبيقك، ثم اضبط قيمتها على true.