Para permitir que seus usuários ativem ou desativem o monitoramento de desempenho do Firebase, você pode configurar seu aplicativo para ativar e desativar o monitoramento de desempenho. Você também pode achar esse recurso útil durante o desenvolvimento e teste do aplicativo.
A seguir estão algumas opções a serem consideradas:
Você pode desabilitar o SDK de monitoramento de desempenho ao criar seu aplicativo, com a opção de reativá-lo em tempo de execução.
Você pode criar seu aplicativo com o SDK de monitoramento de desempenho ativado, mas tem a opção de desativá-lo em tempo de execução usando o Firebase Remote Config.
Você pode desativar completamente o SDK de monitoramento de desempenho, sem a opção de habilitá-lo em tempo de execução.
Desative o monitoramento de desempenho durante o processo de criação do aplicativo
Uma situação em que desabilitar o monitoramento de desempenho durante o processo de criação do aplicativo pode ser útil é evitar relatar dados de desempenho de uma versão de pré-lançamento do aplicativo durante o desenvolvimento e o teste do aplicativo.
Para desabilitar ou desativar o monitoramento de desempenho, você pode adicionar uma das duas chaves ao arquivo de lista de propriedades ( Info.plist
) para seu aplicativo Apple:
Para desabilitar o monitoramento de desempenho, mas permitir que seu aplicativo o habilite em tempo de execução, defina
firebase_performance_collection_enabled
comofalse
no arquivoInfo.plist
de seu aplicativo.Para desativar completamente o monitoramento de desempenho, sem opção de ativá-lo em tempo de execução, defina
firebase_performance_collection_deactivated
comotrue
no arquivoInfo.plist
do seu aplicativo.
Desative seu aplicativo em tempo de execução usando o Remote Config
O Firebase Remote Config permite que você faça alterações no comportamento e na aparência do seu aplicativo, portanto, oferece uma maneira ideal de permitir que você desabilite o Monitoramento de desempenho em instâncias implantadas do seu aplicativo.
Para desabilitar a coleta de dados do Monitoramento de desempenho na próxima vez que seu aplicativo Apple for iniciado, use o código de exemplo mostrado abaixo. Para obter mais informações sobre como usar o Remote Config em um app da Apple, consulte Usar o Firebase Remote Config em plataformas Apple .
Certifique-se de que o Remote Config seja usado em seu
Podfile
:pod 'Firebase/RemoteConfig'
Adicione o seguinte ao topo do arquivo
AppDelegate
do seu aplicativo:Rápido
Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e watchOS.import FirebaseRemoteConfig
Objective-C
Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e watchOS.@import FirebaseRemoteConfig;
Em seu arquivo
AppDelegate
, adicione o seguinte código às instruçõeslaunchOptions
no métodoapplication:didFinishLaunchingWithOptions:
instance:Rápido
Observação: este produto não está disponível em destinos macOS, Mac Catalyst e 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
Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e 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];
Em
ViewController.m
, ou outro arquivo de implementação usado por seu aplicativo, adicione o seguinte código para buscar e ativar os valores do Remote Config:Rápido
Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e 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
Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e 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); } }];
Para desabilitar o monitoramento de desempenho no Firebase console, crie um parâmetro perf_disable no projeto do seu aplicativo e defina seu valor como
true
.Se você definir o valor de perf_disable como
false
, o Monitoramento de desempenho permanecerá ativado.
Desative a coleta de dados automática ou personalizada separadamente
Você pode fazer algumas alterações no código mostrado acima e no console do Firebase para permitir que você desative todo o monitoramento automático (pronto para uso) separadamente do monitoramento personalizado.
Adicione o seguinte código às instruções
launchOptions
no métodoapplication:didFinishLaunchingWithOptions:
instance (em vez do que é mostrado acima para o mesmo método instance):Rápido
Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e 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
Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e 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];
Conclua o seguinte no console do Firebase:
- Para desativar todo o monitoramento automático (pronto para uso), crie um parâmetro perf_disable_auto no projeto do seu aplicativo e defina seu valor como
true
. - Para desativar todo o monitoramento personalizado, crie um parâmetro perf_disable_manual no projeto do seu aplicativo e defina seu valor como
true
.
- Para desativar todo o monitoramento automático (pronto para uso), crie um parâmetro perf_disable_auto no projeto do seu aplicativo e defina seu valor como