หากต้องการให้ผู้ใช้เลือกใช้หรือไม่ใช้ Firebase Performance Monitoring คุณอาจต้องกำหนดค่าแอปเพื่อให้เปิดและปิดใช้ Performance Monitoring ได้ นอกจากนี้ คุณยังอาจพบว่าความสามารถนี้มีประโยชน์ในระหว่างการพัฒนาและการทดสอบแอปด้วย
ตัวเลือกที่ควรพิจารณามีดังนี้
คุณสามารถปิดใช้ Performance Monitoring SDK เมื่อสร้างแอป โดยมีตัวเลือกให้เปิดใช้อีกครั้งในรันไทม์
คุณสามารถสร้างแอปโดยเปิดใช้ Performance Monitoring SDK ได้ แต่มีตัวเลือกในการปิดใช้ SDK ดังกล่าวเมื่อรันไทม์โดยใช้ Firebase Remote Config
คุณสามารถปิดใช้งาน Performance Monitoring SDK ได้อย่างสมบูรณ์โดยไม่มีตัวเลือกให้เปิดใช้ในรันไทม์
ปิดใช้ Performance Monitoring ในระหว่างกระบวนการสร้างแอป
สถานการณ์ที่การปิดใช้ Performance Monitoring ระหว่างกระบวนการสร้างแอปอาจมีประโยชน์อย่างหนึ่งคือการหลีกเลี่ยงการรายงานข้อมูลประสิทธิภาพจากแอปเวอร์ชันก่อนเปิดตัวระหว่างการพัฒนาและการทดสอบแอป
หากต้องการปิดใช้หรือปิดใช้งาน Performance Monitoring ให้เพิ่มคีย์อย่างใดอย่างหนึ่งต่อไปนี้ลงในไฟล์รายการพร็อพเพอร์ตี้ (Info.plist
) สําหรับแอป Apple
หากต้องการปิดใช้ Performance Monitoring แต่อนุญาตให้แอปเปิดใช้ขณะรันไทม์ ให้ตั้งค่า
firebase_performance_collection_enabled
เป็นfalse
ในไฟล์Info.plist
ของแอปหากต้องการปิดใช้งาน Performance Monitoring โดยสมบูรณ์โดยไม่มีตัวเลือกให้เปิดใช้งานขณะรันไทม์ ให้ตั้งค่า
firebase_performance_collection_deactivated
เป็นtrue
ในไฟล์Info.plist
ของแอป
ปิดใช้แอปขณะรันไทม์โดยใช้ Remote Config
Firebase Remote Config ช่วยให้คุณเปลี่ยนแปลงลักษณะการทำงานและรูปลักษณ์ของแอปได้ จึงเหมาะสําหรับการปิดใช้ Performance Monitoring ในอินสแตนซ์ที่ใช้งานอยู่ของแอป
หากต้องการปิดใช้การเก็บรวบรวมข้อมูล Performance Monitoring ในครั้งถัดไปที่แอป Apple เริ่มทำงาน ให้ใช้โค้ดตัวอย่างที่แสดงด้านล่าง ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ Remote Config ในแอป Apple ได้ที่ใช้ Firebase Remote Config ในแพลตฟอร์ม Apple
ตรวจสอบว่าใช้ Remote Config ใน
Podfile
ดังนี้pod 'Firebase/RemoteConfig'
เพิ่มโค้ดต่อไปนี้ที่ด้านบนของไฟล์
AppDelegate
ของแอปSwift
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมาย macOS, Mac Catalyst, watchOSimport FirebaseRemoteConfig
Objective-C
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมาย macOS, Mac Catalyst, watchOS@import FirebaseRemoteConfig;
ในไฟล์
AppDelegate
ให้เพิ่มโค้ดต่อไปนี้ลงในคำสั่งlaunchOptions
ในเมธอดอินสแตนซ์application:didFinishLaunchingWithOptions:
Swift
หมายเหตุ: ผลิตภัณฑ์นี้ไม่พร้อมให้บริการใน macOS, Mac Catalyst, watchOSremoteConfig = 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, watchOSself.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];
ใน
ViewController.m
หรือไฟล์การติดตั้งใช้งานอื่นที่แอปของคุณใช้ ให้เพิ่มโค้ดต่อไปนี้เพื่อดึงข้อมูลและเปิดใช้งานค่า Remote ConfigSwift
หมายเหตุ: ผลิตภัณฑ์ 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); } }];
หากต้องการปิดใช้ Performance Monitoring ในคอนโซล Firebase ให้สร้างพารามิเตอร์ perf_disable ในโปรเจ็กต์ของแอป แล้วตั้งค่าเป็น
true
หากคุณตั้งค่า perf_disable เป็น
false
Performance Monitoring จะยังคงเปิดอยู่
ปิดใช้การเก็บรวบรวมข้อมูลอัตโนมัติหรือแบบกำหนดเองแยกกัน
คุณสามารถทําการเปลี่ยนแปลงบางอย่างในโค้ดที่แสดงด้านบนและในFirebaseคอนโซลเพื่อปิดใช้การตรวจสอบอัตโนมัติทั้งหมด (พร้อมใช้งานทันที) แยกจากการตรวจสอบที่กําหนดเอง
เพิ่มโค้ดต่อไปนี้ลงในคำสั่ง
launchOptions
ในเมธอดอินสแตนซ์application:didFinishLaunchingWithOptions:
(แทนที่จะเป็นโค้ดที่แสดงด้านบนสำหรับเมธอดอินสแตนซ์เดียวกัน)Swift
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมาย macOS, Mac Catalyst, watchOSremoteConfig = 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, watchOSself.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];
ทําตามขั้นตอนต่อไปนี้ในคอนโซล Firebase
- หากต้องการปิดใช้การตรวจสอบอัตโนมัติทั้งหมด (พร้อมใช้งานทันที) ให้สร้างพารามิเตอร์ perf_disable_auto ในโปรเจ็กต์ของแอป แล้วตั้งค่าเป็น
true
- หากต้องการปิดใช้การตรวจสอบที่กําหนดเองทั้งหมด ให้สร้างพารามิเตอร์ perf_disable_manual ในโปรเจ็กต์ของแอป แล้วตั้งค่าเป็น
true
- หากต้องการปิดใช้การตรวจสอบอัตโนมัติทั้งหมด (พร้อมใช้งานทันที) ให้สร้างพารามิเตอร์ perf_disable_auto ในโปรเจ็กต์ของแอป แล้วตั้งค่าเป็น