Désactiver Firebase Performance Monitoring


Pour permettre à vos utilisateurs d'activer ou de désactiver Firebase Performance Monitoring, vous pouvez souhaitez configurer votre application pour pouvoir activer et désactiver Performance Monitoring. Toi peut également s'avérer utile lors du développement et des tests d'applications.

Voici quelques options à envisager:

  • Vous pouvez désactiver le SDK Performance Monitoring lorsque vous compilez votre application, avec la possibilité de la réactiver au moment de l'exécution.

  • Vous pouvez compiler votre application avec le SDK Performance Monitoring activé, mais vous avez la possibilité de désactivez-la au moment de l'exécution à l'aide de Firebase Remote Config.

  • Vous pouvez désactiver complètement le SDK Performance Monitoring, sans aucune option pour l'activer lors de l'exécution.

Désactiver Performance Monitoring pendant le processus de compilation de votre application

Désactiver Performance Monitoring pendant le processus de compilation de votre appli peut être est d'éviter de générer des rapports sur les données de performances d'une version préliminaire pendant le développement et le test de l'application.

Pour désactiver ou désactiver Performance Monitoring, vous pouvez ajouter l'une des deux clés à la fichier de liste de propriétés (Info.plist) pour votre application Apple:

  • Pour désactiver Performance Monitoring, tout en autorisant votre application à l'activer au moment de l'exécution, définissez firebase_performance_collection_enabled à false dans le Info.plist.

  • Pour désactiver complètement Performance Monitoring, sans aucune option permettant de l'activer au moment de l'exécution, procédez comme suit : définissez firebase_performance_collection_deactivated sur true dans le Info.plist.

Désactiver votre application au moment de l'exécution à l'aide de Remote Config

Firebase Remote Config vous permet de modifier le comportement et l'apparence de votre application. C'est donc un moyen idéal de désactiver Performance Monitoring dans les instances déployées de votre application.

Pour désactiver la collecte des données Performance Monitoring au prochain démarrage de votre application Apple, utilisez l'exemple de code ci-dessous. Pour en savoir plus sur l'utilisation Remote Config dans une application Apple, consultez Utiliser Firebase Remote Config sur les plates-formes Apple

  1. Assurez-vous que Remote Config est utilisé dans votre Podfile :

    pod 'Firebase/RemoteConfig'
    
  2. Ajoutez le code suivant en haut du fichier AppDelegate de votre application:

    Swift

    Remarque : Ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et watchOS.
    import FirebaseRemoteConfig
    

    Objective-C

    Remarque : Ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et watchOS.
    @import FirebaseRemoteConfig;
    
  3. Dans votre fichier AppDelegate, ajoutez le code suivant à launchOptions instructions dans l'instance application:didFinishLaunchingWithOptions: méthode:

    Swift

    Remarque : Ce produit n'est pas disponible sur les cibles macOS, Mac Catalyst et 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()
    

    Objective-C

    Remarque:Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst et 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. Dans ViewController.m, ou dans un autre fichier d'implémentation utilisé par votre application, ajoutez le code suivant pour récupérer et activer les valeurs Remote Config:

    Swift

    Remarque : Ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et 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)")
      }
    }
    

    Objective-C

    Remarque:Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst et 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. Pour désactiver Performance Monitoring dans la console Firebase, créez un élément perf_disable dans le projet de votre application, puis définissez sa valeur sur true.

    Si vous définissez la valeur de perf_disable sur false, Performance Monitoring reste activé.

Désactiver la collecte des données automatique ou personnalisée séparément

Vous pouvez modifier le code ci-dessus et dans la console Firebase pour vous permettre de désactiver toute la surveillance automatique (prête à l'emploi) indépendamment une surveillance personnalisée.

  1. Ajoutez le code suivant aux instructions launchOptions dans application:didFinishLaunchingWithOptions: (au lieu de ce qui est affiché ci-dessus pour la même méthode d'instance):

    Swift

    Remarque : Ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et 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()
    

    Objective-C

    Remarque:Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst et 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. Procédez comme suit dans la console Firebase:

    • Pour désactiver toute surveillance automatique (prête à l'emploi), créez un perf_disable_auto dans le projet de votre application, puis définissez sur true.
    • Pour désactiver toute surveillance personnalisée, créez un manuel perf_disable_manual dans le projet de votre application, puis définissez sa valeur sur true.