Wyłącz monitorowanie wydajności Firebase

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

  • Aby całkowicie dezaktywować monitorowanie wydajności bez możliwości włączenia go w czasie wykonywania, ustaw firebase_performance_collection_deactivated na true w pliku Info.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 .

  1. Upewnij się, że w Twoim Podfile jest używana zdalna konfiguracja:

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

  1. Dodaj następujący kod do instrukcji launchOptions w application: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];
    
  2. 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 .