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

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

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

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

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

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

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

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

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

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

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

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

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

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

กลยุทธ์การโหลดที่ควรหลีกเลี่ยง

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

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

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

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

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