Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Отключить мониторинг производительности Firebase

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Чтобы ваши пользователи могли соглашаться или отказываться от использования мониторинга производительности Firebase, вы можете настроить свое приложение, чтобы вы могли включать и отключать мониторинг производительности. Вы также можете найти эту возможность полезной во время разработки и тестирования приложений.

Ниже приведены некоторые варианты для рассмотрения:

  • Вы можете отключить SDK мониторинга производительности при создании приложения с возможностью повторного включения его во время выполнения.

  • Вы можете создать свое приложение с включенным SDK мониторинга производительности, но иметь возможность отключить его во время выполнения с помощью Firebase Remote Config.

  • Вы можете полностью деактивировать SDK мониторинга производительности без возможности включения его во время выполнения.

Отключите мониторинг производительности в процессе сборки приложения.

Одной из ситуаций, когда отключение мониторинга производительности в процессе сборки приложения может быть полезным, является избежание предоставления данных о производительности из предварительной версии вашего приложения во время разработки и тестирования приложения.

Чтобы отключить или деактивировать мониторинг производительности, вы можете добавить один из двух ключей в файл списка свойств ( Info.plist ) для вашего приложения Apple:

  • Чтобы отключить мониторинг производительности, но разрешить приложению включать его во время выполнения, задайте для firebase_performance_collection_enabled значение false в файле Info.plist вашего приложения.

  • Чтобы полностью деактивировать мониторинг производительности без возможности включения его во время выполнения, задайте для firebase_performance_collection_deactivated значение true в файле Info.plist вашего приложения.

Отключите приложение во время выполнения с помощью Remote Config.

Firebase Remote Config позволяет вам вносить изменения в поведение и внешний вид вашего приложения, поэтому он предоставляет идеальный способ отключить мониторинг производительности в развернутых экземплярах вашего приложения.

Чтобы отключить сбор данных мониторинга производительности при следующем запуске приложения Apple, используйте приведенный ниже пример кода. Дополнительные сведения об использовании Remote Config в приложении Apple см. в разделе Использование Firebase Remote Config на платформах Apple .

  1. Убедитесь, что Remote Config используется в вашем Podfile :

    pod 'Firebase/RemoteConfig'
    
  2. Добавьте следующее в начало файла AppDelegate вашего приложения:

    Быстрый

    Примечание. Этот продукт Firebase недоступен на macOS, Mac Catalyst и watchOS.
    import FirebaseRemoteConfig
    

    Цель-C

    Примечание. Этот продукт Firebase недоступен на macOS, Mac Catalyst и watchOS.
    @import FirebaseRemoteConfig;
    
  3. В файле AppDelegate добавьте следующий код в операторы launchOptions в методе application:didFinishLaunchingWithOptions: instance:

    Быстрый

    Примечание. Этот продукт недоступен на 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()
    

    Цель-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:

    Быстрый

    Примечание. Этот продукт 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)")
      }
    }
    

    Цель-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: (вместо того, что показано выше для того же метода экземпляра):

    Быстрый

    Примечание. Этот продукт 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()
    

    Цель-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 .