Para permitir que seus usuários aceitem ou desativem o Monitoramento de desempenho do Firebase, convém configurar seu aplicativo para ativar e desativar o Monitoramento de desempenho. Você também pode achar esse recurso útil durante o desenvolvimento e teste de aplicativos.
A seguir estão algumas opções a serem consideradas:
Você pode desabilitar o SDK do 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 do Monitoramento de desempenho ativado, mas tem a opção de desativá-lo em tempo de execução usando a Configuração remota do Firebase.
Você pode desativar completamente o SDK do Performance Monitoring, sem opção de habilitá-lo em tempo de execução.
Desative o monitoramento de desempenho durante o processo de criação do seu aplicativo
Uma situação em que desabilitar o Monitoramento de desempenho durante o processo de criação do seu aplicativo pode ser útil é evitar relatar dados de desempenho de uma versão de pré-lançamento do seu aplicativo durante o desenvolvimento e 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 desativar o Monitoramento de desempenho, mas permitir que seu aplicativo o ative em tempo de execução, defina
firebase_performance_collection_enabled
comofalse
no arquivoInfo.plist
do 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 app em tempo de execução usando o Configuração remota
A Configuração remota do Firebase permite fazer alterações no comportamento e na aparência do seu aplicativo, portanto, é uma maneira ideal de desativar o monitoramento de desempenho em instâncias implantadas do seu aplicativo.
Para desativar 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 Configuração remota em um app Apple, consulte Usar a Configuração remota do Firebase em plataformas Apple .
Certifique-se de que o Configuração remota seja usado em seu
Podfile
:pod 'Firebase/RemoteConfig'
Adicione o seguinte ao topo do arquivo
AppDelegate
do seu aplicativo:Observação: este produto Firebase não está disponível em destinos macOS, Mac Catalyst e watchOS.import FirebaseRemoteConfig
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: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()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 em outro arquivo de implementação usado pelo seu aplicativo, adicione o seguinte código para buscar e ativar os valores do Configuração remota: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)")
}
}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 desativar o Monitoramento de desempenho no console do Firebase, crie um parâmetro perf_disable no projeto do seu aplicativo e defina seu valor como
true
.Se você configurar 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étodo de instânciaapplication:didFinishLaunchingWithOptions:
(em vez do que é mostrado acima para o mesmo método de instância):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()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