คุณใช้การกำหนดค่าระยะไกลของ Firebase เพื่อกำหนดพารามิเตอร์ในแอปและอัปเดตค่าในระบบคลาวด์ได้ ช่วยให้คุณปรับเปลี่ยนลักษณะและการทำงานของแอปได้โดยไม่ต้องเผยแพร่การอัปเดตแอป คู่มือนี้จะแนะนำคุณตลอดขั้นตอนในการเริ่มต้นและให้โค้ดตัวอย่าง ซึ่งทั้งหมดนั้นพร้อมสำหรับการโคลนหรือดาวน์โหลดจากที่เก็บ firebase/quickstart-ios GitHub
เพิ่ม Remote Config ให้กับแอพของคุณ
ติดตั้ง Firebase SDK สำหรับแพลตฟอร์ม Apple
สร้าง singleton Remote Config object ตามที่แสดงในตัวอย่างต่อไปนี้:
Swift
remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 0 remoteConfig.configSettings = settings
วัตถุประสงค์-C
self.remoteConfig = [FIRRemoteConfig remoteConfig]; FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] init]; remoteConfigSettings.minimumFetchInterval = 0; self.remoteConfig.configSettings = remoteConfigSettings;
ออบเจ็กต์นี้ใช้เพื่อเก็บค่าพารามิเตอร์เริ่มต้นในแอป ดึงค่าพารามิเตอร์ที่อัปเดตจากแบ็กเอนด์การกำหนดค่าระยะไกล และควบคุมเวลาที่จะให้ค่าที่ดึงมานั้นพร้อมใช้งานสำหรับแอปของคุณ
ในระหว่างการพัฒนา ขอแนะนำให้ตั้งค่าช่วงการดึงข้อมูลขั้นต่ำที่ค่อนข้างต่ำ ดูข้อมูลเพิ่มเติมที่การ ควบคุมปริมาณ
ตั้งค่าพารามิเตอร์เริ่มต้นในแอป
คุณสามารถตั้งค่าพารามิเตอร์เริ่มต้นในแอปในออบเจ็กต์ Remote Config เพื่อให้แอปของคุณทำงานตามที่ตั้งใจไว้ก่อนที่จะเชื่อมต่อกับแบ็กเอนด์ Remote Config และเพื่อให้ค่าเริ่มต้นนั้นใช้ได้หากไม่มีการตั้งค่าในส่วนแบ็คเอนด์
กำหนดชุดของชื่อพารามิเตอร์ และค่าพารามิเตอร์เริ่มต้นโดยใช้วัตถุ
NSDictionary
หรือ ไฟล์ plistหากคุณได้กำหนดค่าพารามิเตอร์แบ็คเอนด์การกำหนดค่าระยะไกลแล้ว คุณสามารถดาวน์โหลดไฟล์
plist
ที่สร้างขึ้นซึ่งมีค่าเริ่มต้นทั้งหมดและบันทึกลงในโปรเจ็กต์ Xcode ของคุณพักผ่อน
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=PLIST -o RemoteConfigDefaults.plist
คอนโซล Firebase
ในแท็บ Parameters ให้เปิด Menu และเลือก Download default values
เมื่อได้รับแจ้ง ให้เปิดใช้ งาน .plist สำหรับ iOS จากนั้นคลิก ดาวน์โหลดไฟล์
เพิ่มค่าเหล่านี้ไปยังวัตถุ Remote Config โดยใช้
setDefaults:
ตัวอย่างต่อไปนี้ตั้งค่าเริ่มต้นในแอปจากไฟล์ plist:Swift
remoteConfig.setDefaults(fromPlist: "RemoteConfigDefaults")
วัตถุประสงค์-C
[self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
รับค่าพารามิเตอร์เพื่อใช้ในแอปของคุณ
ตอนนี้คุณสามารถรับค่าพารามิเตอร์จากอ็อบเจ็กต์ Remote Config หากคุณตั้งค่าในภายหลังในแบ็คเอนด์การกำหนดค่าระยะไกล ดึงข้อมูล จากนั้นเปิดใช้งาน ค่าเหล่านั้นจะพร้อมใช้งานสำหรับแอปของคุณ มิฉะนั้น คุณจะได้รับค่าพารามิเตอร์ในแอปที่กำหนดค่าโดยใช้ setDefaults:
ในการรับค่าเหล่านี้ ให้เรียกใช้เมธอด configValueForKey:
โดยระบุคีย์พารามิเตอร์เป็นอาร์กิวเมนต์
ตั้งค่าพารามิเตอร์
การใช้คอนโซล Firebase หรือ Remote Config แบ็กเอนด์ API คุณสามารถสร้างค่าเริ่มต้นแบ็กเอนด์ใหม่ที่แทนที่ค่าในแอปตามตรรกะตามเงื่อนไขที่คุณต้องการหรือการกำหนดเป้าหมายผู้ใช้ ส่วนนี้จะอธิบายขั้นตอนคอนโซล Firebase เพื่อสร้างค่าเหล่านี้
- ใน คอนโซล Firebase ให้เปิดโปรเจ็กต์ของคุณ
- เลือก การกำหนดค่าระยะไกล จากเมนูเพื่อดูแดชบอร์ดการกำหนดค่าระยะไกล
- กำหนดพารามิเตอร์ที่มีชื่อเดียวกับพารามิเตอร์ที่คุณกำหนดในแอปของคุณ สำหรับแต่ละพารามิเตอร์ คุณสามารถตั้งค่าเริ่มต้น (ซึ่งในที่สุดจะแทนที่ค่าเริ่มต้นในแอป) และคุณยังสามารถตั้งค่าตามเงื่อนไขได้อีกด้วย หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่ พารามิเตอร์และเงื่อนไขการกำหนดค่าระยะไกล
ดึงและเปิดใช้งานค่า
ในการดึงค่าพารามิเตอร์จาก Remote Config ให้เรียก fetchWithCompletionHandler:
หรือ fetchWithExpirationDuration:completionHandler:
ค่าใดๆ ที่คุณตั้งค่าไว้ในแบ็กเอนด์จะถูกดึงข้อมูลและแคชในออบเจ็กต์ Remote Config
สำหรับกรณีที่คุณต้องการดึงข้อมูลและเปิดใช้งานค่าในการโทรครั้งเดียว ให้ใช้ fetchAndActivateWithCompletionHandler:
ตัวอย่างนี้ดึงค่าจากแบ็กเอนด์ Remote Config (ไม่ใช่ค่าที่แคชไว้) และเรียก activateWithCompletionHandler:
เพื่อให้พร้อมใช้งานในแอป:
Swift
remoteConfig.fetch { (status, error) -> Void in if status == .success { print("Config fetched!") self.remoteConfig.activate { changed, error in // ... } } else { print("Config not fetched") print("Error: \(error?.localizedDescription ?? "No error available.")") } self.displayWelcome() }
วัตถุประสงค์-C
[self.remoteConfig fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) { if (status == FIRRemoteConfigFetchStatusSuccess) { NSLog(@"Config fetched!"); [self.remoteConfig activateWithCompletion:^(BOOL changed, NSError * _Nullable error) { // ... }]; } else { NSLog(@"Config not fetched"); NSLog(@"Error %@", error.localizedDescription); } [self displayWelcome]; }];
เนื่องจากค่าพารามิเตอร์ที่อัปเดตเหล่านี้ส่งผลต่อการทำงานและรูปลักษณ์ของแอป คุณจึงควรเปิดใช้งานค่าที่ดึงมาในแต่ละครั้ง ซึ่งจะทำให้ผู้ใช้ได้รับประสบการณ์ที่ราบรื่น เช่น ในครั้งต่อไปที่ผู้ใช้เปิดแอปของคุณ ดู กลยุทธ์การโหลดการกำหนดค่าระยะไกล สำหรับข้อมูลเพิ่มเติมและตัวอย่าง
การควบคุมปริมาณ
หากแอปดึงข้อมูลหลายครั้งเกินไปในช่วงเวลาสั้นๆ การเรียกข้อมูลจะถูกควบคุมปริมาณ และ SDK จะส่งกลับ FIRRemoteConfigFetchStatusThrottled
ก่อน SDK เวอร์ชัน 6.3.0 ขีดจำกัดคือ 5 คำขอดึงข้อมูลในหน้าต่าง 60 นาที (เวอร์ชันที่ใหม่กว่ามีขีดจำกัดที่อนุญาตมากกว่า)
ในระหว่างการพัฒนาแอพ คุณอาจต้องการรีเฟรชแคชบ่อยมาก (หลาย ๆ ครั้งต่อชั่วโมง) เพื่อให้คุณสามารถทำซ้ำได้อย่างรวดเร็วในขณะที่พัฒนาและทดสอบแอพของคุณ เพื่อรองรับการวนซ้ำอย่างรวดเร็วในโครงการที่มีนักพัฒนาจำนวนมาก คุณสามารถเพิ่มคุณสมบัติ FIRRemoteConfigSettings
ชั่วคราวด้วยช่วงเวลาการดึงข้อมูลขั้นต่ำที่ต่ำ ( MinimumFetchInterval
) ในแอปของคุณ
ช่วงเวลาการดึงข้อมูลที่ใช้งานจริงที่เป็นค่าเริ่มต้นและที่แนะนำสำหรับการกำหนดค่าระยะไกลคือ 12 ชั่วโมง ซึ่งหมายความว่าระบบจะไม่ดึงการกำหนดค่าจากแบ็กเอนด์มากกว่าหนึ่งครั้งในหน้าต่าง 12 ชั่วโมง ไม่ว่าจะมีการเรียกการดึงข้อมูลจริงกี่ครั้งก็ตาม โดยเฉพาะอย่างยิ่ง ช่วงเวลาการดึงข้อมูลขั้นต่ำจะถูกกำหนดในลำดับต่อไปนี้:
- พารามิเตอร์ในการ
fetch(long)
- พารามิเตอร์ใน
FIRRemoteConfigSettings.MinimumFetchInterval
- ค่าเริ่มต้น 12 ชั่วโมง
ขั้นตอนถัดไป
หากคุณยังไม่ได้ดำเนินการ ให้สำรวจ กรณีการใช้งาน การกำหนดค่าระยะไกล และดูแนวคิดหลักและเอกสารเกี่ยวกับกลยุทธ์ขั้นสูง ซึ่งรวมถึง: