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

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

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

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

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

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

إيقاف ميزة "مراقبة الأداء" أثناء عملية إنشاء التطبيق

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

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

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

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

إيقاف التطبيق في وقت التشغيل باستخدام ميزة "الإعداد عن بُعد"

تتيح لك ميزة "الإعداد عن بُعد في Firebase" إجراء تغييرات على السلوك والمظهر في تطبيقك، لذا فهو يُعد طريقة مثالية للسماح لك بإيقاف ميزة "مراقبة الأداء" في المثيلات المنشورة لتطبيقك.

لإيقاف جمع بيانات "مراقبة الأداء" في المرة القادمة التي يتم فيها تشغيل تطبيق Apple، فاستخدم الرمز النموذجي الموضح أدناه. لمزيد من المعلومات حول استخدام عن بُعد في تطبيق Apple، يمكنك الاطلاع على استخدام ميزة "الإعداد عن بُعد في Firebase" على أنظمة Apple الأساسية

  1. يُرجى التأكّد من استخدام ميزة "الإعداد عن بُعد" في 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 أو ملف تنفيذ آخر استخدمه تطبيقك، أضف الرمز التالي لاسترجاع قيم "الإعداد عن بُعد" وتفعيلها:

    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. لإيقاف "مراقبة الأداء" في وحدة تحكُّم Firebase، أنشئ perf_disable. في مشروع تطبيقك، ثم اضبط قيمتها على true.

    في حال ضبط قيمة perf_disable على false، ستظل "مراقبة الأداء" مفعّلة.

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

يمكنك إجراء بعض التغييرات على الرمز الوارد أعلاه وفي "وحدة تحكُّم 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.