Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    سويفت

    import FirebaseRemoteConfig
    

    ج موضوعية

    @import FirebaseRemoteConfig;
    
  3. في الخاص AppDelegate ملف بإضافة التعليمة البرمجية التالية إلى launchOptions البيانات في application:didFinishLaunchingWithOptions: أسلوب مثيل:

    سويفت

    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()
    

    ج موضوعية

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

    سويفت

    //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)")
      }
    }
    

    ج موضوعية

    //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: أسلوب مثيل (بدلا من ما هو مبين أعلاه لنفس طريقة سبيل المثال):

    سويفت

    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()
    

    ج موضوعية

    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 .