การกำหนดค่าระยะไกลของ Firebase มอบความยืดหยุ่นอย่างมากเกี่ยวกับวิธีการและเวลาในการดึงค่าใหม่จากเซิร์ฟเวอร์และเปิดใช้งานค่าเหล่านั้นในแอปของคุณ ช่วยให้คุณมั่นใจได้ถึงประสบการณ์ผู้ใช้ปลายทางที่มีคุณภาพโดยการควบคุมเวลาของการเปลี่ยนแปลงการกำหนดค่าที่มองเห็นได้ คุณสามารถดึงค่าใหม่เมื่อเปิดแอปพลิเคชันโดยใช้ fetchAndActivate()
และใช้ การกำหนดค่าระยะไกลแบบเรียลไทม์ เป็นวิธีเสริมเพื่อดึงค่าพารามิเตอร์ล่าสุดโดยอัตโนมัติหลังจากเผยแพร่การกำหนดค่าระยะไกลเวอร์ชันใหม่ของคุณ
คู่มือนี้จะพิจารณากลยุทธ์การโหลดบางส่วนและอภิปรายข้อควรพิจารณาที่สำคัญในการเลือกตัวเลือกที่ดีที่สุดสำหรับแอปของคุณ
กลยุทธ์ที่ 1: ดึงข้อมูลและเปิดใช้งานเมื่อโหลด
ในกลยุทธ์นี้ แอปของคุณจะเรียกใช้ fetchAndActivate()
เมื่อแอปของคุณเริ่มทำงานครั้งแรกเพื่อดึงค่าใหม่จากการกำหนดค่าระยะไกลและเปิดใช้งานทันทีที่โหลดเสร็จแล้ว วิธีการง่ายๆ นี้ใช้ได้ผลดีกับการเปลี่ยนแปลงการกำหนดค่าที่ไม่ทำให้เกิดการเปลี่ยนแปลงด้านภาพอย่างมากใน UI ของคุณ ควรหลีกเลี่ยงในทุกสถานการณ์ที่ UI ของคุณอาจเปลี่ยนแปลงอย่างเห็นได้ชัดในขณะที่ผู้ใช้อยู่ระหว่างการใช้งาน
หลังจากที่แอปของคุณเรียกใช้ fetchAndActivate()
แล้ว แอปจะสามารถเริ่มฟังการอัปเดตค่าพารามิเตอร์แบบเรียลไทม์ได้โดยการเรียก addOnConfigUpdateListener
เมธอดนี้จะเริ่มฟังการอัพเดตฝั่งเซิร์ฟเวอร์เป็นค่าพารามิเตอร์ จากนั้นดึงข้อมูลเหล่านั้นโดยอัตโนมัติ จากนั้นจึงเรียกผู้ฟัง กลยุทธ์ง่ายๆ คือการเปิดใช้งานค่าใหม่ใน Listener อย่างไรก็ตาม ตามที่กล่าวไว้สำหรับ fetchAndActivate()
ควรหลีกเลี่ยงการเปิดใช้งานทันทีสำหรับ UI ที่ละเอียดอ่อน
กลยุทธ์ที่ 2: เปิดใช้งานหลังหน้าจอโหลด
เพื่อเป็นแนวทางแก้ไขปัญหา UI ที่อาจเกิดขึ้นที่พบในกลยุทธ์ 1 คุณสามารถพึ่งพาหน้าจอการโหลดได้ แทนที่จะเริ่มต้นแอปของคุณทันที ให้แสดงหน้าจอการโหลดและเรียก fetchAndActivate
ในตัวจัดการการเสร็จสิ้นของคุณ หลังจากนั้น - อีกครั้งโดยใช้การโทรกลับหรือการแจ้งเตือน - ปิดหน้าจอการโหลดและอนุญาตให้ผู้ใช้เริ่มโต้ตอบกับแอปของคุณ
หากคุณใช้กลยุทธ์นี้ ขอแนะนำให้เพิ่มการหมดเวลาลงในหน้าจอการโหลด การหมดเวลาหนึ่งนาทีของการกำหนดค่าระยะไกลอาจยาวเกินไปสำหรับประสบการณ์การเริ่มต้นแอปที่มีคุณภาพสำหรับผู้ใช้
การรับฟังการอัปเดตการกำหนดค่าระยะไกลแบบเรียลไทม์โดยการเรียก addOnConfigUpdateListener
จะทำงานได้ดีกับกลยุทธ์นี้ เพิ่ม Listener เมื่อหน้าจอการโหลดปรากฏขึ้น จากนั้นใช้ activate()
ที่จุดใดจุดหนึ่งหรือมากกว่าในแอปของคุณ โดยที่ค่าการกำหนดค่าระยะไกลจะไม่ทำให้ภาพเปลี่ยนแปลงไปอย่างมาก
กลยุทธ์ที่ 3: โหลดค่าใหม่สำหรับการเริ่มต้นครั้งต่อไป
กลยุทธ์ที่มีประสิทธิภาพคือการโหลดค่าการกำหนดค่าใหม่เพื่อเปิดใช้งานในการเริ่มต้นแอป ครั้งถัดไป ในกลยุทธ์นี้ แอปของคุณจะเปิดใช้งานค่าที่ดึงมาเมื่อเริ่มต้นระบบก่อนที่จะพยายามดึงข้อมูลใหม่ โดยดำเนินการบนสมมติฐานที่ว่าอาจดึงค่าการกำหนดค่าใหม่แล้ว (แต่ยังไม่ได้เปิดใช้งาน) ลำดับการดำเนินการสำหรับกลยุทธ์นี้คือ:
- เมื่อเริ่มต้น ให้เปิดใช้งานค่าที่ดึงมาก่อนหน้านี้ทันที สิ่งนี้จะใช้ค่าใด ๆ ที่คุณดาวน์โหลดจากเซิร์ฟเวอร์ในเซสชันก่อนหน้าและเกือบจะเกิดขึ้นทันที
- ขณะที่ผู้ใช้โต้ตอบกับแอปของคุณ ให้เริ่มต้นการเรียกแบบอะซิงโครนัสเพื่อดึงค่าใหม่ตามช่วงเวลาการดึงข้อมูลขั้นต่ำเริ่มต้น และเพิ่ม Listener การอัปเดตการกำหนดค่าแบบเรียลไทม์ Listener แบบเรียลไทม์จะดึงค่าใดๆ ที่เผยแพร่บนเซิร์ฟเวอร์โดยอัตโนมัติในขณะที่แอปของคุณกำลังทำงาน การอัปเดตแบบเรียลไทม์ข้ามการตั้งค่าช่วงเวลาการดึงข้อมูลขั้นต่ำ
- ในตัวจัดการการดำเนินการเสร็จสิ้นหรือการโทรกลับสำหรับการดึงข้อมูล ไม่ต้องทำอะไรเลย แอปของคุณจะเก็บค่าที่ดาวน์โหลดไว้จนกว่าคุณจะเปิดใช้งานในครั้งถัดไปที่แอปเริ่มทำงาน
ด้วยกลยุทธ์นี้ เวลารอของผู้ใช้จะลดลงอย่างมาก การผสมผสานกลยุทธ์การดึงข้อมูลและ Listener แบบเรียลไทม์เข้ากับการเรียก activate()
ตามความจำเป็นในวงจรการใช้งานของแอป ทำให้มั่นใจได้ว่าผู้ใช้จะได้รับค่าล่าสุดจากการกำหนดค่าระยะไกลเมื่อพวกเขาโต้ตอบกับแอปของคุณ
กำลังโหลดกลยุทธ์ต่อต้าน
ตามที่คุณอาจเข้าใจแล้วจากการสนทนาข้างต้นเกี่ยวกับการโหลดข้อดีและข้อเสีย มีรูปแบบการใช้งานสองสามรูปแบบที่ควรหลีกเลี่ยง
- อย่า อัปเดตหรือเปลี่ยนแง่มุมต่างๆ ของ UI ขณะที่ผู้ใช้ดูหรือโต้ตอบกับ UI เว้นแต่ คุณจะมีเหตุผลหนักแน่นเกี่ยวกับแอปหรือทางธุรกิจในการดำเนินการดังกล่าว เช่น การนำตัวเลือกที่เกี่ยวข้องกับโปรโมชันที่เพิ่งสิ้นสุดลงออก
- อย่า ส่งคำขอดึงข้อมูลพร้อมกันจำนวนมาก ซึ่งอาจส่งผลให้เซิร์ฟเวอร์ควบคุมปริมาณแอปของคุณ หากคุณต้องการรับการอัปเดตบ่อยครั้ง ให้ใช้ Remote Config แบบเรียลไทม์ แม้ว่าความเสี่ยงในการควบคุมปริมาณจะต่ำในสถานการณ์การผลิตส่วนใหญ่ แต่ก็อาจเป็นปัญหาได้ในระหว่างการพัฒนาที่ใช้งานอยู่ และการกำหนดค่าระยะไกลแบบเรียลไทม์ได้รับการออกแบบมาสำหรับกรณีการใช้งานนี้ ตรวจสอบ คำแนะนำการควบคุมปริมาณ
- ไม่ต้อง พึ่งพาการเชื่อมต่อเครือข่ายเพื่อรับค่าการกำหนดค่าระยะไกล ตั้ง ค่าพารามิเตอร์เริ่มต้นในแอปเพื่อให้แอปของคุณทำงานตามที่คาดไว้เสมอ คุณสามารถซิงค์ค่าเริ่มต้นของแบ็กเอนด์แอปและการกำหนดค่าระยะไกลให้ตรงกันได้เป็นระยะๆ โดยใช้ ค่าเริ่มต้นของเทมเพลตที่ดาวน์โหลด
ขั้นตอนถัดไป
กลยุทธ์พื้นฐานทั้งสามนี้ไม่ได้ประกอบด้วยรายการวิธีการโหลดค่าการกำหนดค่าทั้งหมด คุณสามารถคิดค้นกลยุทธ์ที่ซับซ้อนกว่านี้ได้ขึ้นอยู่กับความต้องการของคุณ
ตรวจสอบข้อมูลอ้างอิง API สำหรับแพลตฟอร์มของคุณเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการเรียกเฉพาะสำหรับการดึงข้อมูลและการเปิดใช้งานค่าการกำหนดค่า