Firebase Performance Monitoring deaktivieren


Damit Ihre Nutzer die Verwendung von Firebase Performance Monitoring aktivieren oder deaktivieren können, sollten Sie Ihre App so konfigurieren, dass Sie Performance Monitoring aktivieren und deaktivieren können. Diese Funktion kann auch bei der Entwicklung und beim Testen von Apps nützlich sein.

Hier einige Optionen:

  • Sie können das Performance Monitoring SDK beim Erstellen Ihrer App deaktivieren und es zur Laufzeit wieder aktivieren.

  • Sie können Ihre App mit aktiviertem Performance Monitoring SDK erstellen, haben aber die Möglichkeit, es zur Laufzeit mit Firebase Remote Config zu deaktivieren.

  • Sie können das Performance Monitoring SDK vollständig deaktivieren. Es gibt dann keine Möglichkeit, es zur Laufzeit zu aktivieren.

Performance Monitoring während des App-Build-Prozesses deaktivieren

Das Deaktivieren von Performance Monitoring während des App-Build-Prozesses kann beispielsweise nützlich sein, um zu vermeiden, dass Leistungsdaten aus einer Vorabversion Ihrer App während der App-Entwicklung und des App-Tests erfasst werden.

Wenn Sie Performance Monitoring deaktivieren möchten, können Sie einen von zwei Schlüsseln zur Eigenschaftslistendatei (Info.plist) für Ihre Apple-App hinzufügen:

  • Wenn Sie Performance Monitoring deaktivieren, aber Ihrer App erlauben möchten, sie zur Laufzeit zu aktivieren, setzen Sie firebase_performance_collection_enabled in der Info.plist-Datei Ihrer App auf false.

  • Wenn Sie Performance Monitoring vollständig deaktivieren möchten, ohne die Möglichkeit, sie zur Laufzeit zu aktivieren, setzen Sie firebase_performance_collection_deactivated in der Datei Info.plist Ihrer App auf true.

Anwendung zur Laufzeit mit Remote Config deaktivieren

Mit Firebase Remote Config können Sie das Verhalten und die Darstellung Ihrer App ändern. Das ist eine ideale Möglichkeit, um Performance Monitoring in bereitgestellten Instanzen Ihrer App zu deaktivieren.

Wenn Sie die Performance Monitoring-Datenerhebung beim nächsten Start Ihrer Apple-App deaktivieren möchten, verwenden Sie den unten gezeigten Beispielcode. Weitere Informationen zur Verwendung von Remote Config in einer Apple-App finden Sie unter Firebase Remote Config auf Apple-Plattformen verwenden.

  1. Achten Sie darauf, dass Remote Config in Ihrem Podfile verwendet wird:

    pod 'Firebase/RemoteConfig'
    
  2. Fügen Sie oben in der Datei AppDelegate Ihrer App Folgendes hinzu:

    Swift

    Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
    import FirebaseRemoteConfig
    

    Objective-C

    Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
    @import FirebaseRemoteConfig;
    
  3. Fügen Sie in Ihrer AppDelegate-Datei den folgenden Code zu den launchOptions-Anweisungen in der application:didFinishLaunchingWithOptions:-Instanzmethode hinzu:

    Swift

    Hinweis:Dieses Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
    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

    Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
    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. Fügen Sie in ViewController.m oder einer anderen Implementierungsdatei, die von Ihrer App verwendet wird, den folgenden Code hinzu, um Remote Config-Werte abzurufen und zu aktivieren:

    Swift

    Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
    //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

    Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
    //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. Wenn Sie Performance Monitoring in der Firebase-Konsole deaktivieren möchten, erstellen Sie in Ihrem App-Projekt den Parameter perf_disable und legen Sie seinen Wert auf true fest.

    Wenn Sie den Wert von perf_disable auf false setzen, bleibt Performance Monitoring aktiviert.

Automatische oder benutzerdefinierte Datenerhebung separat deaktivieren

Sie können einige Änderungen am oben gezeigten Code und in der Firebase-Konsole vornehmen, um die gesamte automatische (vorkonfigurierte) Überwachung separat von der benutzerdefinierten Überwachung zu deaktivieren.

  1. Fügen Sie den folgenden Code den launchOptions-Anweisungen in der application:didFinishLaunchingWithOptions:-Instanzmethode hinzu (anstelle des oben für dieselbe Instanzmethode gezeigten Codes):

    Swift

    Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
    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

    Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.
    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. Führen Sie in der Firebase-Konsole die folgenden Schritte aus:

    • Wenn Sie die gesamte automatische (Out-of-the-Box-)Überwachung deaktivieren möchten, erstellen Sie in Ihrem App-Projekt den Parameter perf_disable_auto und legen Sie seinen Wert auf true fest.
    • Wenn Sie die gesamte benutzerdefinierte Überwachung deaktivieren möchten, erstellen Sie in Ihrem App-Projekt den Parameter perf_disable_manual und legen Sie seinen Wert auf true fest.