تعطيل مراقبة أداء Firebase

للسماح لمستخدميك بالاشتراك أو إلغاء الاشتراك في استخدام مراقبة أداء Firebase ، قد ترغب في تكوين تطبيقك بحيث يمكنك تمكين وتعطيل مراقبة الأداء. قد تجد أيضًا أن هذه الإمكانية مفيدة أثناء تطوير التطبيق واختباره.

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

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

  • يمكنك إنشاء تطبيقك مع تمكين SDK لمراقبة الأداء ولكن لديك خيار تعطيله في وقت التشغيل باستخدام Firebase Remote Config.

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

تعطيل مراقبة الأداء أثناء عملية بناء التطبيق الخاص بك

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

لمراقبة أداء تعطيل أو إلغاء تنشيطه، يمكنك إضافة واحد من اثنين من مفاتيح ملف قائمة الممتلكات ( Info.plist ) لأبل التطبيق الخاص بك:

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

  • لمراقبة أداء تعطيل تماما، مع عدم وجود خيار لتمكينها في وقت التشغيل، مجموعة firebase_performance_collection_deactivated إلى true في التطبيق الخاص بك Info.plist الملف.

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

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

لتعطيل جمع بيانات مراقبة الأداء في المرة التالية التي يبدأ فيها تطبيق Apple الخاص بك ، استخدم مثال الرمز الموضح أدناه. لمزيد من المعلومات حول استخدام التكوين عن بعد في التطبيق أبل، انظر استخدام Firebase بعد التكوين على منصات أبل .

  1. ضمان البعيد يستخدم التكوين في حياتك Podfile :

    pod 'Firebase/RemoteConfig'
    
  2. إضافة ما يلي إلى الجزء العلوي من التطبيق الخاص بك AppDelegate الملف:

    سويفت

    ملاحظة: هذا المنتج Firebase غير متوفر على ماك، ماك محفز والأهداف watchOS.
    import FirebaseRemoteConfig
    

    ج موضوعية

    ملاحظة: هذا المنتج Firebase غير متوفر على ماك، ماك محفز والأهداف watchOS.
    @import FirebaseRemoteConfig;
    
  3. في الخاص AppDelegate ملف بإضافة التعليمة البرمجية التالية إلى launchOptions البيانات في application:didFinishLaunchingWithOptions: أسلوب مثيل:

    سويفت

    ملاحظة: هذا المنتج غير متوفر على ماك، ماك محفز والأهداف 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()
    

    ج موضوعية

    ملاحظة: هذا المنتج Firebase غير متوفر على ماك، ماك محفز والأهداف 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 ، أو ملف تطبيق آخر يستخدمه التطبيق الخاص بك، قم بإضافة التعليمات البرمجية التالية إلى جلب وتفعيل القيم التكوين عن بعد:

    سويفت

    ملاحظة: هذا المنتج Firebase غير متوفر على ماك، ماك محفز والأهداف 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)")
      }
    }
    

    ج موضوعية

    ملاحظة: هذا المنتج Firebase غير متوفر على ماك، ماك محفز والأهداف 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: أسلوب مثيل (بدلا من ما هو مبين أعلاه لنفس طريقة سبيل المثال):

    سويفت

    ملاحظة: هذا المنتج Firebase غير متوفر على ماك، ماك محفز والأهداف 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()
    

    ج موضوعية

    ملاحظة: هذا المنتج Firebase غير متوفر على ماك، ماك محفز والأهداف 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 .