Aby umożliwić użytkownikom włączanie i wyłączanie Monitorowania wydajności Firebase, skonfiguruj aplikację, aby ją włączyć lub wyłączyć. Ta możliwość może być też przydatna podczas tworzenia i testowania aplikacji.
Oto kilka opcji do rozważenia:
Pakiet SDK Performance Monitoring możesz wyłączyć podczas tworzenia aplikacji oraz włączyć go ponownie w czasie działania.
Możesz utworzyć aplikację z włączonym pakietem SDK Performance Monitoring, ale mieć możliwość wyłączenia go w czasie działania za pomocą Zdalnej konfiguracji Firebase.
Możesz całkowicie wyłączyć pakiet SDK Performance Monitoring bez możliwości włączania go w czasie działania.
Wyłącz monitorowanie wydajności podczas procesu kompilacji aplikacji
Jedną z sytuacji, w której warto wyłączyć Monitorowanie wydajności w trakcie procesu kompilacji aplikacji, jest unikanie raportowania danych o wydajności wersji przedpremierowej aplikacji podczas jej tworzenia i testowania.
Aby wyłączyć lub dezaktywować monitorowanie wydajności, możesz dodać do pliku z listą usług (Info.plist
) jeden z dwóch kluczy aplikacji Apple:
Aby wyłączyć monitorowanie wydajności, ale zezwolić aplikacji na włączanie go w czasie działania, ustaw
firebase_performance_collection_enabled
nafalse
w plikuInfo.plist
aplikacji.Aby całkowicie wyłączyć Monitorowanie wydajności (bez możliwości włączania go w czasie działania), ustaw
firebase_performance_collection_deactivated
natrue
w plikuInfo.plist
aplikacji.
Wyłączanie aplikacji w czasie działania za pomocą Zdalnej konfiguracji
Zdalna konfiguracja Firebase umożliwia wprowadzanie zmian w działaniu i wyglądzie aplikacji, dzięki czemu stanowi idealny sposób na wyłączenie monitorowania wydajności we wdrożonych instancjach aplikacji.
Aby wyłączyć zbieranie danych w ramach Monitorowania wydajności przy następnym uruchomieniu aplikacji Apple, użyj przykładowego kodu poniżej. Więcej informacji o korzystaniu ze Zdalnej konfiguracji w aplikacji Apple znajdziesz w artykule o korzystaniu ze Zdalnej konfiguracji Firebase na platformach Apple.
Sprawdź, czy w
Podfile
jest używana Zdalna konfiguracja:pod 'Firebase/RemoteConfig'
Dodaj ten fragment na początku pliku
AppDelegate
aplikacji:Swift
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem macOS, Mac Catalyst i watchOS.import FirebaseRemoteConfig
Objective-C
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem macOS, Mac Catalyst i watchOS.@import FirebaseRemoteConfig;
W pliku
AppDelegate
dodaj ten kod do instrukcjilaunchOptions
w metodzie instancjiapplication:didFinishLaunchingWithOptions:
:Swift
Uwaga: ta usługa nie jest dostępna na systemy macOS, Mac Catalyst i 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
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem macOS, Mac Catalyst i 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];
W
ViewController.m
lub innym pliku implementacji używanym przez Twoją aplikację dodaj ten kod, aby pobrać i aktywować wartości Zdalnej konfiguracji:Swift
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem macOS, Mac Catalyst i 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
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem macOS, Mac Catalyst i 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); } }];
Aby wyłączyć monitorowanie wydajności w konsoli Firebase, utwórz parametr perf_disable w projekcie aplikacji, a następnie ustaw jego wartość na
true
.Jeśli ustawisz wartość perf_disable na
false
, Monitorowanie wydajności pozostanie włączone.
Oddzielne wyłączanie automatycznego lub niestandardowego zbierania danych
Możesz wprowadzić zmiany w kodzie pokazanym powyżej i w konsoli Firebase, aby wyłączyć automatyczne (gotowe) monitorowanie niezależnie od monitorowania niestandardowego.
Dodaj ten kod do instrukcji
launchOptions
w metodzieapplication:didFinishLaunchingWithOptions:
zamiast kodu pokazanego powyżej w przypadku tej samej metody instancji:Swift
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem macOS, Mac Catalyst i 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
Uwaga: ta usługa Firebase nie jest dostępna na urządzeniach docelowych z systemem macOS, Mac Catalyst i 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];
W konsoli Firebase wykonaj te czynności:
- Aby wyłączyć całkowicie automatyczne (gotowe) monitorowanie, utwórz parametr perf_disable_auto w projekcie aplikacji, a następnie ustaw jego wartość na
true
. - Aby wyłączyć całe monitorowanie niestandardowe, utwórz parametr perf_disable_manual w projekcie aplikacji, a potem ustaw jego wartość na
true
.
- Aby wyłączyć całkowicie automatyczne (gotowe) monitorowanie, utwórz parametr perf_disable_auto w projekcie aplikacji, a następnie ustaw jego wartość na