Aby umożliwić użytkownikom włączanie i wyłączanie monitorowania wydajności Firebase, możesz skonfigurować aplikację tak, aby można było włączać i wyłączać monitorowanie wydajności. Ta funkcja może być również przydatna podczas tworzenia i testowania aplikacji.
Oto kilka opcji do rozważenia:
Możesz wyłączyć zestaw SDK do monitorowania wydajności podczas tworzenia aplikacji, z opcją ponownego włączenia go w czasie wykonywania.
Możesz zbudować aplikację z włączonym pakietem SDK do monitorowania wydajności, ale możesz też wyłączyć ją w czasie wykonywania za pomocą Zdalnej konfiguracji Firebase.
Można całkowicie dezaktywować zestaw SDK do monitorowania wydajności, bez możliwości włączenia go w czasie wykonywania.
Wyłącz monitorowanie wydajności podczas procesu tworzenia aplikacji
Jedną z sytuacji, w której wyłączenie monitorowania wydajności podczas procesu tworzenia aplikacji może być przydatne, jest uniknięcie raportowania danych dotyczących wydajności z przedpremierowej wersji aplikacji podczas jej tworzenia i testowania.
Aby wyłączyć lub dezaktywować monitorowanie wydajności, możesz dodać jeden z dwóch kluczy do pliku listy właściwości ( Info.plist
) swojej aplikacji Apple:
Aby wyłączyć monitorowanie wydajności, ale pozwolić aplikacji na włączenie go w czasie wykonywania, ustaw
firebase_performance_collection_enabled
nafalse
w plikuInfo.plist
aplikacji.Aby całkowicie dezaktywować monitorowanie wydajności bez możliwości włączenia go w czasie wykonywania, ustaw
firebase_performance_collection_deactivated
natrue
w plikuInfo.plist
aplikacji.
Wyłącz aplikację w czasie wykonywania za pomocą zdalnej konfiguracji
Firebase Remote Config umożliwia wprowadzanie zmian w zachowaniu i wyglądzie aplikacji, dlatego stanowi idealny sposób na wyłączenie monitorowania wydajności we wdrożonych instancjach aplikacji.
Aby wyłączyć zbieranie danych przez Monitorowanie wydajności przy następnym uruchomieniu aplikacji Apple, użyj przykładowego kodu pokazanego poniżej. Aby uzyskać więcej informacji na temat korzystania ze zdalnej konfiguracji w aplikacji Apple, zobacz Korzystanie ze zdalnej konfiguracji Firebase na platformach Apple .
Upewnij się, że w Twoim
Podfile
jest używana zdalna konfiguracja:pod 'Firebase/RemoteConfig'
Dodaj następujący tekst na górze pliku
AppDelegate
aplikacji:Szybki
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst i watchOS.import FirebaseRemoteConfig
Cel C
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych macOS, Mac Catalyst i watchOS.@import FirebaseRemoteConfig;
W pliku
AppDelegate
dodaj następujący kod do instrukcjilaunchOptions
wapplication:didFinishLaunchingWithOptions:
metoda instancji:Szybki
Uwaga: ten produkt nie jest dostępny w systemach docelowych 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()
Cel C
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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 następujący kod, aby pobrać i aktywować wartości Remote Config:Szybki
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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)") } }
Cel C
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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 swojej aplikacji, a następnie ustaw jego wartość na
true
.Jeśli ustawisz wartość perf_disable na
false
, monitorowanie wydajności pozostanie włączone.
Wyłącz osobno automatyczne lub niestandardowe zbieranie danych
Możesz wprowadzić pewne zmiany w kodzie pokazanym powyżej oraz w konsoli Firebase, aby umożliwić wyłączenie całego automatycznego (gotowego) monitorowania oddzielnie od monitorowania niestandardowego.
Dodaj następujący kod do instrukcji
launchOptions
wapplication:didFinishLaunchingWithOptions:
metoda instancji (zamiast tego, co pokazano powyżej dla tej samej metody instancji):Szybki
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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()
Cel C
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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];
Wykonaj następujące czynności w konsoli Firebase:
- Aby wyłączyć całe 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 następnie ustaw jego wartość na
true
.
- Aby wyłączyć całe automatyczne (gotowe) monitorowanie, utwórz parametr perf_disable_auto w projekcie aplikacji, a następnie ustaw jego wartość na