ทำความเข้าใจการกำหนดค่าระยะไกลแบบเรียลไทม์


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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้การกำหนดค่าระยะไกลได้ที่คุณใช้การกำหนดค่าระยะไกลทำอะไรได้บ้าง

ในคู่มือนี้ คุณจะได้ทำสิ่งต่อไปนี้

  • เรียนรู้เพิ่มเติมเกี่ยวกับความสัมพันธ์แบบไคลเอ็นต์-เซิร์ฟเวอร์ที่สนับสนุนการอัปเดตแบบเรียลไทม์
  • ทำความเข้าใจวิธีการทำงานของฟังก์ชันแบบเรียลไทม์ใน SDK
  • ดูวิธีใช้การอัปเดตแบบเรียลไทม์เพื่อให้การกำหนดค่าแอปเป็นปัจจุบันอยู่เสมอ

การเชื่อมต่อไคลเอ็นต์-เซิร์ฟเวอร์แบบเรียลไทม์

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

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

เวิร์กโฟลว์แบบไคลเอ็นต์-เซิร์ฟเวอร์การกำหนดค่าระยะไกลแบบเรียลไทม์

เนื่องจากการเชื่อมต่อไคลเอ็นต์-เซิร์ฟเวอร์ทำผ่าน HTTP จึงไม่ต้องอาศัยการขึ้นต่อกันใดๆ กับไลบรารีอื่นๆ

ฟังข้อมูลอัปเดต

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

หากต้องการรอฟังข้อมูลอัปเดต โทร addOnConfigUpdateListener, ใช้ Callback ที่จะเรียกใช้เมื่อมีการเรียกใช้เซิร์ฟเวอร์ระยะไกลสำหรับการเรียกใช้นี้ หลังจากเริ่มการอัปเดตการกำหนดค่าระยะไกล หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับความสัมพันธ์ระหว่างไคลเอ็นต์เซิร์ฟเวอร์ โปรดดูส่วนก่อนหน้า

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

เลือกเปิดใช้งานค่าพารามิเตอร์เฉพาะ

เมื่อโทรมาที่ addOnConfigUpdateListener คุณรอการเปลี่ยนแปลงและเปิดใช้งานได้

ระบบจะเรียกใช้ Callback onUpdate เมื่อดึงข้อมูลทั้งเวอร์ชันใหม่โดยอัตโนมัติ และเมื่อเวอร์ชันใหม่มีการเปลี่ยนแปลงค่าพารามิเตอร์ที่เปิดใช้งานอยู่ในแอป

การเรียกกลับเหล่านี้จะทำงานด้วยพารามิเตอร์ configUpdate configUpdate มี updatedKeys, ซึ่งเป็นชุดคีย์พารามิเตอร์ที่มีการเปลี่ยนแปลงซึ่งเริ่มต้นการอัปเดตแบบเรียลไทม์ รวมถึงสิ่งต่อไปนี้

  • เพิ่มหรือนำคีย์พารามิเตอร์ออก
  • คีย์พารามิเตอร์ที่ค่ามีการเปลี่ยนแปลง
  • คีย์พารามิเตอร์ที่ข้อมูลเมตามีการเปลี่ยนแปลง (เช่น ข้อมูลการปรับตามโปรไฟล์ของผู้ใช้ของการกำหนดค่าระยะไกล)
  • คีย์พารามิเตอร์ที่แหล่งที่มาของค่ามีการเปลี่ยนแปลง (เช่น ค่าเริ่มต้นในแอปที่อัปเดตเป็นค่าฝั่งเซิร์ฟเวอร์)

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

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

เพิ่มและนำ Listener ออก

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

การโทรจะแสดง "การลงทะเบียนผู้ฟัง" ซึ่งมีเมธอดชื่อ remove

หากต้องการหยุดฟัง ให้จัดเก็บการอ้างอิงไปยังการลงทะเบียนผู้ฟัง โทร remove เพื่อหยุดฟังการลงทะเบียนนี้ หากเป็นผู้ฟังที่ลงทะเบียนเพียงคนเดียว การเรียกใช้ remove จะปิดการเชื่อมต่อแบบเรียลไทม์กับเซิร์ฟเวอร์

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

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

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