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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

กลยุทธ์พื้นฐาน 3 อย่างนี้ไม่ได้เป็นรายการวิธีโหลดค่าการกำหนดค่าทั้งหมด คุณสามารถวางกลยุทธ์ที่ซับซ้อนกว่านี้ได้ตามความต้องการ

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