Firebase प्रदर्शन मॉनिटर करना बंद करें


अपने उपयोगकर्ताओं को Firebase Performance Monitoring का इस्तेमाल करने के लिए ऑप्ट-इन या ऑप्ट-आउट करने की अनुमति देने के लिए, हो सकता है कि आप अपने ऐप्लिकेशन को कॉन्फ़िगर करना चाहें, ताकि आप Performance Monitoring को चालू और बंद कर सकें. आपको ऐप्लिकेशन डेवलप करने और उसकी जांच करने के दौरान भी, यह सुविधा काम की लग सकती है.

यहां कुछ विकल्प दिए गए हैं:

  • ऐप्लिकेशन बनाते समय, Performance Monitoring SDK टूल को बंद किया जा सकता है. साथ ही, रनटाइम के दौरान इसे फिर से चालू किया जा सकता है.

  • Performance Monitoring SDK टूल को चालू करके, अपना ऐप्लिकेशन बनाया जा सकता है. हालांकि, Firebase Remote Config का इस्तेमाल करके, रनटाइम के दौरान इसे बंद किया जा सकता है.

  • Performance Monitoring SDK टूल को पूरी तरह से बंद किया जा सकता है. इसे रनटाइम के दौरान चालू करने का विकल्प नहीं होता.

ऐप्लिकेशन बनाने की प्रोसेस के दौरान Performance Monitoring को बंद करना

ऐप्लिकेशन बनाने की प्रोसेस के दौरान Performance Monitoring को बंद करने से, ऐप्लिकेशन के डेवलपमेंट और टेस्टिंग के दौरान, रिलीज़ से पहले के वर्शन की परफ़ॉर्मेंस का डेटा रिपोर्ट करने से बचा जा सकता है.

Performance Monitoring को बंद करने या बंद करने के लिए, अपने Apple ऐप्लिकेशन के लिए प्रॉपर्टी की सूची वाली फ़ाइल (Info.plist) में, इनमें से कोई एक पासकोड जोड़ा जा सकता है:

  • Performance Monitoring को बंद करने के बावजूद, अपने ऐप्लिकेशन को रनटाइम के दौरान इसे चालू करने की अनुमति देने के लिए, अपने ऐप्लिकेशन की Info.plist फ़ाइल में firebase_performance_collection_enabled को false पर सेट करें.

  • Performance Monitoring को पूरी तरह से बंद करने के लिए, अपने ऐप्लिकेशन की Info.plist फ़ाइल में firebase_performance_collection_deactivated को true पर सेट करें. ऐसा करने पर, रनटाइम के दौरान इसे चालू नहीं किया जा सकेगा.

Remote Config का इस्तेमाल करके, रनटाइम के दौरान ऐप्लिकेशन बंद करना

Firebase Remote Config की मदद से, ऐप्लिकेशन के काम करने के तरीके और लुक में बदलाव किए जा सकते हैं. इसलिए, यह आपके ऐप्लिकेशन के डिप्लॉय किए गए इंस्टेंस में Performance Monitoring को बंद करने का सबसे सही तरीका है.

अगली बार जब आपका Apple ऐप्लिकेशन शुरू होगा, तब Performance Monitoring डेटा इकट्ठा करने की सुविधा को बंद करने के लिए, यहां दिए गए उदाहरण के तौर पर दिए गए कोड का इस्तेमाल करें. Apple ऐप्लिकेशन में Remote Config का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Apple प्लैटफ़ॉर्म पर Firebase Remote Config का इस्तेमाल करना लेख पढ़ें.

  1. पक्का करें कि आपने Podfile में Remote Config का इस्तेमाल किया हो:

    pod 'Firebase/RemoteConfig'
    
  2. अपने ऐप्लिकेशन की AppDelegate फ़ाइल में सबसे ऊपर, यह जानकारी जोड़ें:

    Swift

    ध्यान दें: Firebase का यह प्रॉडक्ट, macOS, Mac Catalyst, और watchOS टारगेट पर उपलब्ध नहीं है.
    import FirebaseRemoteConfig
    

    Objective-C

    ध्यान दें: Firebase का यह प्रॉडक्ट, macOS, Mac Catalyst, और watchOS टारगेट पर उपलब्ध नहीं है.
    @import FirebaseRemoteConfig;
    
  3. अपनी AppDelegate फ़ाइल में, application:didFinishLaunchingWithOptions: इंस्टेंस विधि में launchOptions स्टेटमेंट में यह कोड जोड़ें:

    Swift

    ध्यान दें: यह प्रॉडक्ट, macOS, Mac Catalyst, और 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

    ध्यान दें: Firebase का यह प्रॉडक्ट, macOS, Mac Catalyst, और 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. ViewController.m या आपके ऐप्लिकेशन में इस्तेमाल की जाने वाली किसी अन्य लागू करने वाली फ़ाइल में, Remote Config वैल्यू को फ़ेच और चालू करने के लिए, यह कोड जोड़ें:

    Swift

    ध्यान दें: Firebase का यह प्रॉडक्ट, macOS, Mac Catalyst, और 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

    ध्यान दें: Firebase का यह प्रॉडक्ट, macOS, Mac Catalyst, और 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. Firebase कंसोल में Performance Monitoring को बंद करने के लिए, अपने ऐप्लिकेशन के प्रोजेक्ट में perf_disable पैरामीटर बनाएं. इसके बाद, इसकी वैल्यू को true पर सेट करें.

    अगर perf_disable की वैल्यू को false पर सेट किया जाता है, तो Performance Monitoring चालू रहेगा.

अपने-आप या पसंद के मुताबिक डेटा इकट्ठा करने की सुविधा को अलग-अलग बंद करना

ऊपर दिए गए कोड और Firebase कंसोल में कुछ बदलाव किए जा सकते हैं, ताकि कस्टम मॉनिटरिंग से अलग, सभी ऑटोमैटिक (टेंप्लेट के साथ मिलने वाली) मॉनिटरिंग को बंद किया जा सके.

  1. application:didFinishLaunchingWithOptions: इंस्टेंस वाले तरीके में launchOptions स्टेटमेंट में, यहां दिया गया कोड जोड़ें. ऐसा, उसी इंस्टेंस वाले तरीके के लिए ऊपर दिखाए गए कोड के बजाय करें:

    Swift

    ध्यान दें: Firebase का यह प्रॉडक्ट, macOS, Mac Catalyst, और 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

    ध्यान दें: Firebase का यह प्रॉडक्ट, macOS, Mac Catalyst, और 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. Firebase कंसोल में ये काम करें:

    • अपने-आप होने वाली (ऑउट-ऑफ़-द-बॉक्स) सभी मॉनिटरिंग को बंद करने के लिए, अपने ऐप्लिकेशन के प्रोजेक्ट में perf_disable_auto पैरामीटर बनाएं. इसके बाद, इसकी वैल्यू को true पर सेट करें.
    • सभी कस्टम मॉनिटरिंग बंद करने के लिए, अपने ऐप्लिकेशन के प्रोजेक्ट में perf_disable_manual पैरामीटर बनाएं. इसके बाद, इसकी वैल्यू को true पर सेट करें.