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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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