Wyłącz Monitorowanie wydajności Firebase

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 na false w pliku Info.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 na true w pliku Info.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.

  1. Sprawdź, czy w Podfile jest używana Zdalna konfiguracja:

    pod 'Firebase/RemoteConfig'
    
  2. 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;
    
  3. W pliku AppDelegate dodaj ten kod do instrukcji launchOptions w metodzie instancji application: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];
    
  4. 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);
      }
    }];
    
  5. 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.

  1. Dodaj ten kod do instrukcji launchOptions w metodzie application: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];
    
  2. 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.