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

C++

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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