Firebase is back at Google I/O on May 10! Register now

Deaktivieren Sie die Firebase-Leistungsüberwachung

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Damit Ihre Benutzer die Verwendung von Firebase Performance Monitoring aktivieren oder deaktivieren können, sollten Sie Ihre App so konfigurieren, dass Sie die Leistungsüberwachung aktivieren und deaktivieren können. Möglicherweise ist diese Funktion auch während der App-Entwicklung und -Tests nützlich.

Im Folgenden sind einige Optionen aufgeführt, die Sie in Betracht ziehen sollten:

  • Sie können das Leistungsüberwachungs-SDK beim Erstellen Ihrer App deaktivieren, mit der Option, es zur Laufzeit wieder zu aktivieren.

  • Sie können Ihre App mit aktiviertem Leistungsüberwachungs-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, ohne dass es zur Laufzeit aktiviert werden kann.

Deaktivieren Sie die Leistungsüberwachung während Ihres App-Erstellungsprozesses

Eine Situation, in der das Deaktivieren der Leistungsüberwachung während Ihres App-Erstellungsprozesses nützlich sein könnte, besteht darin, das Melden von Leistungsdaten aus einer Vorabversion Ihrer App während der App-Entwicklung und des Testens zu vermeiden.

Um die Leistungsüberwachung zu deaktivieren oder zu deaktivieren, können Sie der Eigenschaftslistendatei ( Info.plist ) für Ihre Apple-App einen von zwei Schlüsseln hinzufügen:

  • Um die Leistungsüberwachung zu deaktivieren, aber Ihrer App zu erlauben, sie zur Laufzeit zu aktivieren, setzen Sie firebase_performance_collection_enabled in der Info.plist Datei Ihrer App auf „ false .

  • Um die Leistungsüberwachung vollständig zu deaktivieren, ohne dass sie zur Laufzeit aktiviert werden kann, setzen Sie firebase_performance_collection_deactivated in der Datei Info.plist Ihrer App auf „ true .

Deaktivieren Sie Ihre App zur Laufzeit mit Remote Config

Mit Firebase Remote Config können Sie Änderungen am Verhalten und Erscheinungsbild Ihrer App vornehmen, sodass Sie die Leistungsüberwachung in bereitgestellten Instanzen Ihrer App ideal deaktivieren können.

Verwenden Sie den unten gezeigten Beispielcode, um die Erfassung der Leistungsüberwachungsdaten beim nächsten Start Ihrer Apple-App zu deaktivieren. Weitere Informationen zur Verwendung von Remote Config in einer Apple-App finden Sie unter Verwenden von Firebase Remote Config auf Apple-Plattformen .

  1. Stellen Sie sicher, dass Remote Config in Ihrem Podfile verwendet wird:

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

    Schnell

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

    Ziel c

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

    Schnell

    Hinweis: Dieses Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht 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()
    

    Ziel c

    Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht 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 von Ihrer App verwendeten Implementierungsdatei den folgenden Code hinzu, um Remote-Konfigurationswerte abzurufen und zu aktivieren:

    Schnell

    Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht 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)")
      }
    }
    

    Ziel c

    Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht 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. Um die Leistungsüberwachung in der Firebase-Konsole zu deaktivieren, erstellen Sie einen perf_disable -Parameter im Projekt Ihrer App und setzen Sie dann seinen Wert auf true .

    Wenn Sie den Wert von perf_disable auf false setzen, bleibt die Leistungsüberwachung aktiviert.

Deaktivieren Sie die automatische oder benutzerdefinierte Datenerfassung separat

Sie können einige Änderungen am oben gezeigten Code und in der Firebase-Konsole vornehmen, damit Sie die gesamte automatische (standardmäßige) Überwachung getrennt von der benutzerdefinierten Überwachung deaktivieren können.

  1. Fügen Sie den launchOptions Anweisungen in der application:didFinishLaunchingWithOptions: Instanzmethode (anstelle dessen, was oben für dieselbe Instanzmethode gezeigt wird):

    Schnell

    Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht 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()
    

    Ziel c

    Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht 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 Folgendes aus:

    • Um die gesamte automatische (vorkonfigurierte) Überwachung zu deaktivieren, erstellen Sie einen perf_disable_auto -Parameter im Projekt Ihrer App und setzen Sie dann seinen Wert auf true .
    • Um die gesamte benutzerdefinierte Überwachung zu deaktivieren, erstellen Sie einen perf_disable_manual -Parameter im Projekt Ihrer App und setzen Sie dann seinen Wert auf true .