Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Deshabilitar el monitoreo de rendimiento de Firebase

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Para permitir que sus usuarios acepten o dejen de usar el Monitoreo de rendimiento de Firebase, es posible que desee configurar su aplicación para que pueda habilitar y deshabilitar el Monitoreo de rendimiento. También puede encontrar esta capacidad útil durante el desarrollo y la prueba de aplicaciones.

Las siguientes son algunas opciones a considerar:

  • Puede deshabilitar el SDK de Monitoreo de rendimiento al crear su aplicación, con la opción de volver a habilitarlo en tiempo de ejecución.

  • Puede compilar su aplicación con el SDK de monitoreo de rendimiento habilitado, pero tiene la opción de deshabilitarlo durante el tiempo de ejecución mediante Firebase Remote Config.

  • Puede desactivar por completo el SDK de supervisión del rendimiento, sin opción para habilitarlo en tiempo de ejecución.

Deshabilite la supervisión del rendimiento durante el proceso de creación de su aplicación

Una situación en la que podría ser útil deshabilitar la supervisión del rendimiento durante el proceso de creación de la aplicación es evitar informar los datos de rendimiento de una versión preliminar de la aplicación durante el desarrollo y las pruebas de la aplicación.

Para deshabilitar o desactivar la supervisión del rendimiento, puede agregar una de las dos claves al archivo de lista de propiedades ( Info.plist ) para su aplicación de Apple:

  • Para deshabilitar el Monitoreo de rendimiento, pero permitir que su aplicación lo habilite en tiempo de ejecución, establezca firebase_performance_collection_enabled en false en el archivo Info.plist de su aplicación.

  • Para desactivar completamente el Monitoreo de rendimiento, sin opción para habilitarlo en el tiempo de ejecución, establezca firebase_performance_collection_deactivated en true en el archivo Info.plist de su aplicación.

Deshabilite su aplicación en tiempo de ejecución usando Remote Config

Firebase Remote Config le permite realizar cambios en el comportamiento y la apariencia de su aplicación, por lo que proporciona una forma ideal de permitirle deshabilitar la supervisión del rendimiento en las instancias implementadas de su aplicación.

Para deshabilitar la recopilación de datos de Monitoreo de rendimiento la próxima vez que se inicie su aplicación Apple, use el código de ejemplo que se muestra a continuación. Para obtener más información sobre el uso de Remote Config en una aplicación de Apple, consulte Usar Firebase Remote Config en plataformas de Apple .

  1. Asegúrese de que Remote Config se use en su Podfile :

    pod 'Firebase/RemoteConfig'
    
  2. Agregue lo siguiente en la parte superior del archivo AppDelegate de su aplicación:

    Rápido

    Nota: Este producto de Firebase no está disponible en objetivos macOS, Mac Catalyst, watchOS.
    import FirebaseRemoteConfig
    

    C objetivo

    Nota: Este producto de Firebase no está disponible en objetivos macOS, Mac Catalyst, watchOS.
    @import FirebaseRemoteConfig;
    
  3. En su archivo AppDelegate , agregue el siguiente código a las instrucciones launchOptions en la application:didFinishLaunchingWithOptions: método de instancia:

    Rápido

    Nota: Este producto no está disponible en objetivos 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 objetivo

    Nota: Este producto de Firebase no está disponible en objetivos 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. En ViewController.m u otro archivo de implementación utilizado por su aplicación, agregue el siguiente código para obtener y activar los valores de configuración remota:

    Rápido

    Nota: Este producto de Firebase no está disponible en objetivos 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 objetivo

    Nota: Este producto de Firebase no está disponible en objetivos 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. Para deshabilitar la supervisión del rendimiento en Firebase console, cree un parámetro perf_disable en el proyecto de su aplicación y luego establezca su valor en true .

    Si establece el valor de perf_disable en false , la supervisión del rendimiento permanece habilitada.

Deshabilite la recopilación de datos automática o personalizada por separado

Puede realizar algunos cambios en el código que se muestra arriba y en la consola de Firebase para permitirle deshabilitar todo el monitoreo automático (listo para usar) por separado del monitoreo personalizado.

  1. Agregue el siguiente código a las declaraciones de opciones de launchOptions en la application:didFinishLaunchingWithOptions: método de instancia (en lugar de lo que se muestra arriba para el mismo método de instancia):

    Rápido

    Nota: Este producto de Firebase no está disponible en objetivos 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 objetivo

    Nota: Este producto de Firebase no está disponible en objetivos 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. Complete lo siguiente en la consola de Firebase:

    • Para deshabilitar todo el monitoreo automático (listo para usar), cree un parámetro perf_disable_auto en el proyecto de su aplicación, luego establezca su valor en true .
    • Para deshabilitar todo el monitoreo personalizado, cree un parámetro perf_disable_manual en el proyecto de su aplicación, luego establezca su valor en true .