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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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