กลยุทธ์การโหลดการกำหนดค่าระยะไกลของ Firebase

Firebase Remote Config มีความยืดหยุ่นสูงในเรื่องวิธีและเวลาในการดึงข้อมูลค่าใหม่จากเซิร์ฟเวอร์และเปิดใช้งานค่าเหล่านั้นในแอป ซึ่งช่วยให้คุณมั่นใจได้ว่าผู้ใช้ปลายทางจะได้รับประสบการณ์การใช้งานที่มีคุณภาพโดยการควบคุมเวลาของการเปลี่ยนแปลงการกำหนดค่าที่มองเห็นได้ คุณสามารถดึงข้อมูลค่าใหม่เมื่อเปิดแอปพลิเคชันโดยใช้ fetchAndActivate() และใช้ Remote Config แบบเรียลไทม์เป็นวิธีการเสริมเพื่อดึงข้อมูลค่าพารามิเตอร์ล่าสุดโดยอัตโนมัติหลังจากเผยแพร่ Remote Config เวอร์ชันใหม่

คู่มือนี้จะกล่าวถึงกลยุทธ์การโหลด 2-3 รายการและข้อควรพิจารณาสำคัญในการเลือกตัวเลือกที่ดีที่สุดสำหรับแอป

กลยุทธ์ที่ 1: ดึงข้อมูลและเปิดใช้งานเมื่อโหลด

ในกลยุทธ์นี้ แอปจะเรียกใช้ fetchAndActivate() เมื่อแอปเริ่มต้นขึ้นเป็นครั้งแรกเพื่อดึงค่าใหม่จาก Remote Config และเปิดใช้งานทันทีที่โหลดเสร็จ แนวทางง่ายๆ นี้เหมาะกับการเปลี่ยนแปลงการกําหนดค่าที่ไม่ทําให้เกิดการเปลี่ยนแปลงภาพใน UI อย่างมีนัยสําคัญ คุณควรหลีกเลี่ยงการใช้แอตทริบิวต์นี้ในสถานการณ์ที่ UI อาจเปลี่ยนแปลงอย่างเห็นได้ชัดขณะที่ผู้ใช้กำลังใช้งานอยู่

หลังจากแอปเรียก fetchAndActivate() แล้ว แอปจะเริ่มฟังการอัปเดตพารามิเตอร์ ค่าแบบเรียลไทม์โดยการเรียก addOnConfigUpdateListener เมธอดนี้จะเริ่มการฟังการอัปเดตค่าพารามิเตอร์ฝั่งเซิร์ฟเวอร์ ดึงข้อมูลค่าเหล่านั้นโดยอัตโนมัติ แล้วเรียกฟังก์ชันที่รับฟัง กลยุทธ์ง่ายๆ คือเปิดใช้งานค่าใหม่ใน Listener อย่างไรก็ตาม ดังที่ได้กล่าวไว้สำหรับ fetchAndActivate() ควรหลีกเลี่ยงการเปิดใช้งานทันทีสำหรับ UI ที่มีความละเอียดอ่อน

กลยุทธ์ที่ 2: เปิดใช้งานหลังหน้าจอกำลังโหลด

คุณสามารถอาศัยหน้าจอการโหลดเพื่อแก้ปัญหา UI ที่อาจเกิดขึ้นในกลยุทธ์ที่ 1 แทนที่จะเริ่มต้นแอปทันที ให้แสดงหน้าจอกำลังโหลดและเรียกใช้ fetchAndActivate ในตัวแฮนเดิลการดำเนินการเสร็จสมบูรณ์ จากนั้นให้ปิดหน้าจอการโหลดและอนุญาตให้ผู้ใช้เริ่มโต้ตอบกับแอปของคุณโดยทันที โดยใช้การเรียกกลับหรือการแจ้งเตือน

หากใช้กลยุทธ์นี้ เราขอแนะนําให้เพิ่มการหมดเวลาในหน้าจอการโหลด การหมดเวลา 1 นาทีของการกำหนดค่าระยะไกลอาจนานเกินไปสำหรับประสบการณ์การเริ่มต้นแอปที่มีคุณภาพสำหรับผู้ใช้

การฟังการอัปเดต Remote Config แบบเรียลไทม์โดยการเรียกใช้ addOnConfigUpdateListener เหมาะสําหรับกลยุทธ์นี้ เพิ่ม Listener เมื่อหน้าจอการโหลดปรากฏขึ้น จากนั้นใช้ activate() ที่จุดอย่างน้อย 1 จุดในแอปที่ค่า Remote Config จะไม่ทําให้เกิดการเปลี่ยนแปลงที่เห็นได้ชัด

กลยุทธ์ที่ 3: โหลดค่าใหม่สำหรับการเริ่มต้นครั้งถัดไป

กลยุทธ์ที่มีประสิทธิภาพคือการโหลดค่าการกําหนดค่าใหม่เพื่อเปิดใช้งานเมื่อแอปเริ่มต้นครั้งถัดไป ในกลยุทธ์นี้ แอปจะเปิดใช้งานค่าที่ดึงข้อมูลไว้เมื่อเริ่มต้นก่อนที่จะพยายามดึงข้อมูลใหม่ โดยทำงานโดยสมมติว่าอาจดึงข้อมูลค่าการกําหนดค่าใหม่ไว้แล้ว แต่ยังไม่ได้เปิดใช้งาน ลำดับการดำเนินการของกลยุทธ์นี้คือ

  1. เปิดใช้งานค่าที่ดึงข้อมูลไว้ก่อนหน้านี้ทันทีเมื่อเริ่มต้น ซึ่งจะใช้ค่าที่คุณดาวน์โหลดจากเซิร์ฟเวอร์ในเซสชันก่อนหน้าและเกือบจะทันที
  2. ขณะที่ผู้ใช้โต้ตอบกับแอป ให้เริ่มการเรียกแบบไม่พร้อมกันเพื่อดึงข้อมูลค่าใหม่ตามช่วงเวลาการดึงข้อมูลขั้นต่ำเริ่มต้น และเพิ่มโปรแกรมรับฟังการอัปเดตการกำหนดค่าแบบเรียลไทม์ โปรแกรมรับฟังแบบเรียลไทม์จะดึงค่าที่เผยแพร่บนเซิร์ฟเวอร์โดยอัตโนมัติขณะที่แอปของคุณทํางานอยู่ การอัปเดตแบบเรียลไทม์จะข้ามการตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำ
  3. ในตัวแฮนเดิลการดําเนินการเสร็จสมบูรณ์หรือคอลแบ็กสําหรับการเรียกใช้การดึงข้อมูล ให้ทําการใดๆ ไม่ได้ แอปจะเก็บค่าที่ดาวน์โหลดไว้จนกว่าคุณจะเปิดใช้งานเมื่อแอปเริ่มทำงานครั้งถัดไป

กลยุทธ์นี้ช่วยลดเวลารอของผู้ใช้ได้อย่างมาก การรวมกลยุทธ์การเรียกข้อมูลและเครื่องมือรับฟังแบบเรียลไทม์เข้ากับการเรียก activate() ตามที่จำเป็นในวงจรของแอปจะช่วยให้ผู้ใช้มีค่าล่าสุดจาก Remote Config ขณะโต้ตอบกับแอป

กำลังโหลดกลยุทธ์การป้องกัน

ดังที่คุณอาจเข้าใจจากการพูดคุยเรื่องข้อดีและข้อเสียของการโหลดข้างต้นแล้ว รูปแบบการใช้งานบางอย่างควรหลีกเลี่ยง

  • อย่าอัปเดตหรือเปลี่ยนแง่มุมต่างๆ ของ UI ขณะที่ผู้ใช้กำลังดูหรือโต้ตอบกับ UI เว้นแต่คุณจะมีเหตุผลที่ชัดเจนเกี่ยวกับแอปหรือธุรกิจในการดำเนินการดังกล่าว เช่น การนำตัวเลือกที่เกี่ยวข้องกับโปรโมชันที่เพิ่งสิ้นสุดไปออก
  • อย่าส่งคําขอดึงข้อมูลพร้อมกันจํานวนมาก ซึ่งอาจส่งผลให้เซิร์ฟเวอร์จํากัดแอปของคุณ หากต้องการดึงข้อมูลอัปเดตบ่อยครั้ง ให้ใช้แบบเรียลไทม์ Remote Config แม้ว่าความเสี่ยงในการจำกัดจะต่ำในสถานการณ์การใช้งานจริงส่วนใหญ่ แต่ก็อาจเกิดปัญหาได้ในระหว่างการพัฒนาที่ดำเนินอยู่ และ Remote Config แบบเรียลไทม์ได้รับการออกแบบมาเพื่อกรณีการใช้งานนี้ ดูคำแนะนำเกี่ยวกับการจำกัด
  • อย่าพึ่งพาการเชื่อมต่อเครือข่ายเพื่อรับค่า Remote Config ต้องตั้งค่าพารามิเตอร์เริ่มต้นในแอปเพื่อให้แอปทำงานตามที่คาดไว้เสมอ คุณสามารถทำให้ค่าเริ่มต้นของแอปและRemote Configแบ็กเอนด์ซิงค์กันอยู่เป็นระยะๆ ได้โดยใช้ค่าเริ่มต้นของเทมเพลตที่ดาวน์โหลด

ขั้นตอนถัดไป

กลยุทธ์พื้นฐาน 3 ประการเหล่านี้ไม่ได้เป็นรายการวิธีทั้งหมดในการโหลดค่าการกําหนดค่า คุณอาจคิดกลยุทธ์ที่ซับซ้อนขึ้นได้ ทั้งนี้ขึ้นอยู่กับความต้องการ

ดูข้อมูลอ้างอิง API สําหรับแพลตฟอร์มของคุณเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการเรียกใช้ที่เฉพาะเจาะจงสําหรับการดึงข้อมูลและการเปิดใช้งานค่าการกําหนดค่า