Disabilita il monitoraggio delle prestazioni di Firebase

Per consentire agli utenti di opt-in o opt-out di utilizzare Firebase Performance Monitoring, si potrebbe desiderare di configurare la vostra applicazione in modo che è possibile attivare e disattivare il monitoraggio delle prestazioni. Si potrebbe anche trovare questa capacità di essere utile durante lo sviluppo di applicazioni e la sperimentazione.

Di seguito sono alcune opzioni da prendere in considerazione:

  • È possibile disattivare il Monitoraggio del rendimento SDK quando si costruisce la vostra applicazione, con la possibilità di riattivarlo in fase di esecuzione.

  • È possibile costruire la vostra applicazione con il Monitoraggio del rendimento SDK abilitato, ma hanno la possibilità di disabilitarlo in fase di esecuzione utilizzando Firebase Remote Config.

  • È possibile disattivare completamente il Monitoraggio del rendimento SDK, senza possibilità di attivarlo in fase di esecuzione.

Disabilitare il monitoraggio delle prestazioni durante il processo di compilazione app

Una situazione in cui la disattivazione Monitoraggio del rendimento durante il processo di compilazione applicazione potrebbe essere utile è quello di evitare la trasmissione dei dati di performance di una versione pre-release della vostra applicazione durante lo sviluppo di applicazioni e la sperimentazione.

Per disattivare o disattivare Performance Monitoring, è possibile aggiungere una delle due chiavi per il file di elenco di proprietà ( Info.plist ) per il vostro Apple app:

  • Per disabilitare Performance Monitoring, ma permettere che la tua app per abilitarlo in fase di esecuzione, insieme firebase_performance_collection_enabled per false in dell'app Info.plist file.

  • Per disattivare completamente Performance Monitoring, senza possibilità di abilitarlo in fase di esecuzione, insieme firebase_performance_collection_deactivated al true nella vostra applicazione di Info.plist file.

Disabilitare la vostra applicazione in fase di esecuzione utilizzando Config a distanza

Firebase Remote Config consente di apportare modifiche al comportamento e l'aspetto della vostra applicazione, in modo che fornisce un modo ideale per farvi prestazioni disattivare il monitoraggio nei casi distribuiti della vostra applicazione.

Per disattivare il monitoraggio delle prestazioni di raccolta dei dati la prossima volta che la vostra applicazione si avvia Apple, utilizzare il codice di esempio riportato di seguito. Per ulteriori informazioni sull'utilizzo di configurazione remota in un app di Apple, vedi Usa Firebase Remote Config su piattaforme Apple .

  1. Assicurarsi che Remote Config è utilizzato nel vostro Podfile :

    pod 'Firebase/RemoteConfig'
    
  2. Aggiungere la seguente in cima della vostra applicazione AppDelegate del file:

    Veloce

    Nota: questo prodotto Firebase non è disponibile su target macOS, Mac Catalyst, watchOS.
    import FirebaseRemoteConfig
    

    Obiettivo-C

    Nota: questo prodotto Firebase non è disponibile su target macOS, Mac Catalyst, watchOS.
    @import FirebaseRemoteConfig;
    
  3. Nel vostro AppDelegate file, aggiungere il seguente codice per le launchOptions istruzioni nella application:didFinishLaunchingWithOptions: metodo di istanza:

    Veloce

    Nota: Questo prodotto non è disponibile su MacOS, Mac Catalyst, obiettivi 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()
    

    Obiettivo-C

    Nota: questo prodotto Firebase non è disponibile su target 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. In ViewController.m , o in un altro file di implementazione utilizzato dal vostro app, aggiungere il seguente codice per recuperare e attivare i valori di configurazione remota:

    Veloce

    Nota: questo prodotto Firebase non è disponibile su target 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)")
      }
    }
    

    Obiettivo-C

    Nota: questo prodotto Firebase non è disponibile su target 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. Per disattivare il monitoraggio delle prestazioni nella console Firebase, creare un parametro perf_disable nel progetto di vostra applicazione, quindi impostare il valore su true .

    Se si imposta il valore di perf_disable al false , rimane il monitoraggio delle prestazioni abilitate.

Disabilitare la raccolta di dati automatico o personalizzato a parte

È possibile effettuare alcune modifiche al codice mostrato sopra e nella console Firebase per permettere di disattivare tutte automatiche (out-of-the-box) a monitorare separatamente dal monitoraggio personalizzato.

  1. Aggiungere il seguente codice alle launchOptions istruzioni nella application:didFinishLaunchingWithOptions: metodo (al posto di quello che sta sopra indicato per lo stesso metodo di istanza) esempio:

    Veloce

    Nota: questo prodotto Firebase non è disponibile su target 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()
    

    Obiettivo-C

    Nota: questo prodotto Firebase non è disponibile su target 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. Completa il seguente nella console Firebase:

    • Per disabilitare tutte automatiche (out-of-the-box) di monitoraggio, creare un parametro perf_disable_auto nel progetto di vostra applicazione, quindi impostare il valore su true .
    • Per disattivare tutti i monitoraggi personalizzati, creare un parametro perf_disable_manual nel progetto di vostra applicazione, quindi impostare il valore su true .