Désactiver la surveillance des performances de Firebase

Pour permettre à vos utilisateurs d'activer ou de désactiver la surveillance des performances de Firebase, vous souhaiterez peut-être configurer votre application afin de pouvoir activer et désactiver la surveillance des performances. Cette fonctionnalité peut également vous être utile lors du développement et des tests d'applications.

Voici quelques options à considérer :

  • Vous pouvez désactiver le kit de développement logiciel (SDK) de surveillance des performances lors de la création de votre application, avec la possibilité de le réactiver lors de l'exécution.

  • Vous pouvez créer votre application avec le SDK de surveillance des performances activé, mais vous avez la possibilité de le désactiver lors de l'exécution à l'aide de Firebase Remote Config.

  • Vous pouvez désactiver complètement le SDK de surveillance des performances, sans possibilité de l'activer au moment de l'exécution.

Désactiver la surveillance des performances pendant le processus de création de votre application

Une situation dans laquelle la désactivation de la surveillance des performances pendant le processus de création de votre application peut être utile consiste à éviter de signaler les données de performances d'une version préliminaire de votre application pendant le développement et les tests de l'application.

Pour désactiver le suivi des performances ou de désactiver, vous pouvez ajouter l' une des deux clés du fichier de liste de propriétés ( Info.plist ) pour votre application iOS:

  • Pour désactiver la surveillance des performances, mais permettre à votre application pour l' activer lors de l' exécution, jeu firebase_performance_collection_enabled à false dans votre application Info.plist fichier.

  • Pour complètement désactiver la surveillance de la performance, sans option pour l' activer lors de l' exécution, jeu firebase_performance_collection_deactivated à true dans votre application Info.plist fichier.

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

Firebase Remote Config vous permet d'apporter des modifications au comportement et à l'apparence de votre application. Il constitue donc un moyen idéal pour vous permettre de désactiver la surveillance des performances dans les instances déployées de votre application.

Pour désactiver la collecte de données Performance Monitoring au prochain démarrage de votre application iOS, utilisez l'exemple de code ci-dessous. Pour plus d' informations sur l' utilisation de Config à distance dans une application iOS, voir Utiliser Firebase à distance Config sur iOS .

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

    pod 'Firebase/RemoteConfig'
    
  2. Ajouter ce qui suit en haut de votre application AppDelegate fichier:

    Rapide

    import FirebaseRemoteConfig
    

    Objectif c

    @import FirebaseRemoteConfig;
    
  3. Dans votre AppDelegate fichier, ajoutez le code suivant aux launchOptions énoncés dans la application:didFinishLaunchingWithOptions: méthode d' instance:

    Rapide

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

    Objectif 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 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 un autre fichier de mise en œuvre utilisé par votre application, ajoutez le code suivant pour récupérer et activer à distance les valeurs Config:

    Rapide

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

    Objectif 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. Pour désactiver Contrôle des performances dans la console Firebase, créez un paramètre perf_disable dans le projet de votre application, puis définissez sa valeur à true .

    Si vous définissez la valeur de perf_disable à false , il reste surveillance de la performance a permis.

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

Vous pouvez apporter quelques modifications au code affiché ci-dessus et dans la console Firebase pour vous permettre de désactiver toute surveillance automatique (prêt à l'emploi) séparément de la surveillance personnalisée.

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

    Rapide

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

    Objectif 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 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. Effectuez les opérations suivantes dans la console Firebase :

    • Pour désactiver tout automatique (hors-the-box) de surveillance, créez un paramètre perf_disable_auto dans le projet de votre application, puis définissez sa valeur à true .
    • Pour désactiver tous les contrôles personnalisés, créez un paramètre perf_disable_manual dans le projet de votre application, puis définissez sa valeur à true .