Disabilita il monitoraggio delle prestazioni di Firebase

Per consentire ai tuoi utenti di attivare o disattivare il monitoraggio delle prestazioni di Firebase, potresti voler configurare la tua app in modo da poter abilitare e disabilitare il monitoraggio delle prestazioni. Potresti anche trovare utile questa funzionalità durante lo sviluppo e il test delle app.

Di seguito sono riportate alcune opzioni da considerare:

  • Puoi disabilitare l'SDK di monitoraggio delle prestazioni durante la creazione dell'app, con la possibilità di riattivarlo in fase di esecuzione.

  • Puoi creare la tua app con l'SDK di monitoraggio delle prestazioni abilitato, ma hai la possibilità di disabilitarlo in fase di esecuzione utilizzando Firebase Remote Config.

  • È possibile disattivare completamente l'SDK di monitoraggio delle prestazioni, senza alcuna opzione per abilitarlo in fase di esecuzione.

Disabilita il monitoraggio delle prestazioni durante il processo di creazione dell'app

Una situazione in cui potrebbe essere utile disabilitare il monitoraggio delle prestazioni durante il processo di compilazione dell'app consiste nell'evitare di segnalare i dati sulle prestazioni da una versione preliminare dell'app durante lo sviluppo e il test dell'app.

Per disabilitare o disattivare il monitoraggio delle prestazioni, puoi aggiungere una delle due chiavi al file dell'elenco delle proprietà ( Info.plist ) per la tua app Apple:

  • Per disabilitare il monitoraggio delle prestazioni, ma consentire all'app di abilitarlo in fase di esecuzione, imposta firebase_performance_collection_enabled su false nel file Info.plist dell'app.

  • Per disattivare completamente il monitoraggio delle prestazioni, senza alcuna opzione per abilitarlo in fase di esecuzione, imposta firebase_performance_collection_deactivated su true nel file Info.plist della tua app.

Disabilita la tua app in fase di esecuzione usando Remote Config

Firebase Remote Config ti consente di apportare modifiche al comportamento e all'aspetto della tua app, quindi fornisce un modo ideale per disabilitare il monitoraggio delle prestazioni nelle istanze distribuite della tua app.

Per disabilitare la raccolta dei dati di monitoraggio delle prestazioni al successivo avvio dell'app Apple, utilizza il codice di esempio mostrato di seguito. Per ulteriori informazioni sull'utilizzo di Remote Config in un'app Apple, consulta Utilizzare Firebase Remote Config su piattaforme Apple .

  1. Assicurati che Remote Config sia utilizzato nel tuo Podfile :

    pod 'Firebase/RemoteConfig'
    
  2. Aggiungi quanto segue nella parte superiore del file AppDelegate della tua app:

    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 file AppDelegate , aggiungi il codice seguente alle istruzioni launchOptions application:didFinishLaunchingWithOptions: metodo di istanza:

    Veloce

    Nota: questo prodotto non è disponibile su macOS, Mac Catalyst, target 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 dall'app, aggiungi il codice seguente 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 disabilitare il monitoraggio delle prestazioni nella console Firebase, crea un parametro perf_disable nel progetto della tua app, quindi imposta il suo valore su true .

    Se imposti il ​​valore di perf_disable su false , il monitoraggio delle prestazioni rimane abilitato.

Disabilita la raccolta dati automatica o personalizzata separatamente

Puoi apportare alcune modifiche al codice mostrato sopra e nella console Firebase per disabilitare tutti i monitoraggi automatici (pronti all'uso) separatamente dal monitoraggio personalizzato.

  1. Aggiungi il codice seguente alle istruzioni launchOptions application:didFinishLaunchingWithOptions: metodo di istanza (invece di quanto mostrato sopra per lo stesso metodo di istanza):

    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 quanto segue nella console Firebase:

    • Per disabilitare tutto il monitoraggio automatico (pronto all'uso), crea un parametro perf_disable_auto nel progetto della tua app, quindi imposta il suo valore su true .
    • Per disabilitare tutto il monitoraggio personalizzato, crea un parametro perf_disable_manual nel progetto della tua app, quindi impostane il valore su true .