Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    стриж

     import FirebaseRemoteConfig
     

    Objective-C

     @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 automatic traces and HTTP/S network monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
        // The following line disables custom traces
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
     

    Objective-C

     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 automatic traces and HTTP/S network monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
        // The following line disables custom traces
        [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)")
      }
    }
     

    Objective-C

     //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, чтобы отключить автоматический сбор данных (трассировки запуска приложения и сетевые запросы HTTP / S) отдельно от сбора данных вручную (настраиваемые трассировки).

  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 automatic traces and HTTP/S network monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
    }
    if remoteConfig["perf_disable_manual"].boolValue {
        // The following line disables custom traces
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
     

    Objective-C

     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 automatic traces and HTTP/S network monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
    }
    if (self.remoteConfig[@"perf_disable_manual"].numberValue.boolValue) {
        // The following line disables custom traces
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FirebaseApp configure];
     
  2. Выполните следующее в консоли Firebase:

    • Чтобы отключить автоматическую трассировку и мониторинг сети HTTP / S, создайте параметр perf_disable_auto в проекте вашего приложения, а затем установите для него значение true .
    • Чтобы отключить пользовательские трассировки, создайте параметр perf_disable_manual в проекте вашего приложения, а затем установите для него значение true .