การกำหนดค่าระยะไกลแบบเรียลไทม์ช่วยให้คุณได้รับคีย์และค่าของพารามิเตอร์ที่อัปเดตทันทีที่เผยแพร่บนเซิร์ฟเวอร์ ซึ่งจะช่วยให้คุณอัปเดตแอตทริบิวต์ของแอปทุกประเภทที่ควบคุมได้อย่างรวดเร็วโดยใช้ค่าพารามิเตอร์การกำหนดค่าระยะไกล การอัปเดตการกำหนดค่าระยะไกลแบบเรียลไทม์ช่วยให้คุณทำสิ่งต่อไปนี้ได้
- ลดความเสี่ยงโดยการเปิดตัวฟีเจอร์แก่ผู้ใช้เป้าหมายเป็นส่วนๆ และดำเนินการย้อนกลับฉุกเฉินหากจำเป็น
- เพิ่มการมีส่วนร่วมของผู้ใช้ด้วยการปรับแต่งประสบการณ์ของผู้ใช้อย่างรวดเร็วขณะที่ใช้งานแอป ตัวอย่างเช่น คุณอาจอัปเดตแบนเนอร์และเสนอสิ่งจูงใจสำหรับผู้ใช้ที่ตรงกับพร็อพเพอร์ตี้ผู้ใช้ Google Analytics ที่เฉพาะเจาะจง หรือปรับความยากของเกมแบบไดนามิกสำหรับกลุ่มประชากรตามรุ่นของผู้เล่น
- ลดทรัพยากร Dependency ของบิลด์และเพิ่มประสิทธิภาพการทำงานของนักพัฒนาซอฟต์แวร์: ใช้พารามิเตอร์การกำหนดค่าระยะไกลเป็นแฟล็กฟีเจอร์เพื่อแสดงฟังก์ชันการทำงานสำหรับทีมพัฒนาและทีมทดสอบ พร้อมกับซ่อนฟังก์ชันไว้ไม่ให้ผู้ใช้ใช้งานจริงได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้การกำหนดค่าระยะไกลได้ที่คุณใช้การกำหนดค่าระยะไกลทำอะไรได้บ้าง
ในคู่มือนี้ คุณจะได้ทำสิ่งต่อไปนี้
- เรียนรู้เพิ่มเติมเกี่ยวกับความสัมพันธ์แบบไคลเอ็นต์-เซิร์ฟเวอร์ที่สนับสนุนการอัปเดตแบบเรียลไทม์
- ทำความเข้าใจวิธีการทำงานของฟังก์ชันแบบเรียลไทม์ใน SDK
- ดูวิธีใช้การอัปเดตแบบเรียลไทม์เพื่อให้การกำหนดค่าแอปเป็นปัจจุบันอยู่เสมอ
การเชื่อมต่อไคลเอ็นต์-เซิร์ฟเวอร์แบบเรียลไทม์
เมื่อคุณใช้การกำหนดค่าระยะไกลแบบเรียลไทม์ในแอป คุณจะสร้าง Listener แบบเรียลไทม์ที่จะเปิดการเชื่อมต่อ HTTP ไปยังแบ็กเอนด์การกำหนดค่าระยะไกล คำขอนี้จะมีเวอร์ชันการกำหนดค่าที่แคชไว้ในอุปกรณ์อยู่ในขณะนี้ เซิร์ฟเวอร์การกำหนดค่าระยะไกลแบบเรียลไทม์ใช้ข้อความที่ไม่ถูกต้องเพื่อส่งสัญญาณให้แอปทราบว่าควรดึงข้อมูลการกำหนดค่าฝั่งเซิร์ฟเวอร์เวอร์ชันใหม่เมื่อใด
หากเซิร์ฟเวอร์มีเวอร์ชันใหม่ ระบบจะส่งสัญญาณการใช้งานไม่ได้ทันที
แต่หากไม่ใช่เวอร์ชันใหม่ การเชื่อมต่อจะเปิดอยู่และรอจนกว่าจะมีการเผยแพร่บนเซิร์ฟเวอร์ เมื่อ SDK ของไคลเอ็นต์ได้รับสัญญาณการทำให้เกิดโมฆะ SDK จะดึงข้อมูลโดยอัตโนมัติ จากนั้นจะเรียก Callback ของผู้ฟังที่ลงทะเบียนไว้เมื่อคุณเปิดการเชื่อมต่อ Listener การดึงข้อมูลนี้คล้ายกับการเรียกการดึงข้อมูลที่คุณทำได้ด้วย SDK แต่จะข้ามการแคชหรือการตั้งค่า minimumFetchInterval
การเชื่อมต่อไคลเอ็นต์กับเซิร์ฟเวอร์จะคงไว้
ขณะที่แอปทำงานอยู่เบื้องหน้า
![เวิร์กโฟลว์แบบไคลเอ็นต์-เซิร์ฟเวอร์การกำหนดค่าระยะไกลแบบเรียลไทม์](https://firebase.google.cn/static/docs/remote-config/images/real-time-client-server.png?authuser=2&hl=th)
เนื่องจากการเชื่อมต่อไคลเอ็นต์-เซิร์ฟเวอร์ทำผ่าน HTTP จึงไม่ต้องอาศัยการขึ้นต่อกันใดๆ กับไลบรารีอื่นๆ
ฟังข้อมูลอัปเดต
การอัปเดตแบบเรียลไทม์จะช่วยเสริมการเรียกใช้การกำหนดค่าระยะไกลด้วย fetch
ขอแนะนำให้เรียกใช้การดึงข้อมูลเมื่อแอปเริ่มทำงาน (หรือในช่วงหนึ่งของวงจรของแอป) และรอฟังการอัปเดตการกำหนดค่าระยะไกลแบบเรียลไทม์ระหว่างเซสชันของผู้ใช้เพื่อให้แน่ใจว่าคุณได้รับค่าล่าสุดทันทีที่เผยแพร่บนเซิร์ฟเวอร์
หากต้องการรอฟังข้อมูลอัปเดต โทร
addOnConfigUpdateListener
,
ใช้ Callback ที่จะเรียกใช้เมื่อมีการเรียกใช้เซิร์ฟเวอร์ระยะไกลสำหรับการเรียกใช้นี้
หลังจากเริ่มการอัปเดตการกำหนดค่าระยะไกล
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับความสัมพันธ์ระหว่างไคลเอ็นต์เซิร์ฟเวอร์ โปรดดูส่วนก่อนหน้า
การติดต่อกลับมักจะเป็นตำแหน่งที่เหมาะในการใช้ activate
เพื่อทำให้พารามิเตอร์การกำหนดค่าที่อัปเดตแล้วพร้อมใช้งานสำหรับแอป โปรดดูกลยุทธ์เพิ่มเติมในการเปิดใช้งานค่าพารามิเตอร์เมื่อคุณใช้การกำหนดค่าระยะไกลแบบเรียลไทม์ในกลยุทธ์การโหลดการกำหนดค่าระยะไกลของ Firebase
เลือกเปิดใช้งานค่าพารามิเตอร์เฉพาะ
เมื่อโทรมาที่
addOnConfigUpdateListener
คุณรอการเปลี่ยนแปลงและเปิดใช้งานได้
onUpdate
เมื่อดึงข้อมูลทั้งเวอร์ชันใหม่โดยอัตโนมัติ และเมื่อเวอร์ชันใหม่มีการเปลี่ยนแปลงค่าพารามิเตอร์ที่เปิดใช้งานอยู่ในแอป
การเรียกกลับเหล่านี้จะทำงานด้วยพารามิเตอร์ configUpdate
configUpdate
มี
updatedKeys
,
ซึ่งเป็นชุดคีย์พารามิเตอร์ที่มีการเปลี่ยนแปลงซึ่งเริ่มต้นการอัปเดตแบบเรียลไทม์ รวมถึงสิ่งต่อไปนี้
- เพิ่มหรือนำคีย์พารามิเตอร์ออก
- คีย์พารามิเตอร์ที่ค่ามีการเปลี่ยนแปลง
- คีย์พารามิเตอร์ที่ข้อมูลเมตามีการเปลี่ยนแปลง (เช่น ข้อมูลการปรับตามโปรไฟล์ของผู้ใช้ของการกำหนดค่าระยะไกล)
- คีย์พารามิเตอร์ที่แหล่งที่มาของค่ามีการเปลี่ยนแปลง (เช่น ค่าเริ่มต้นในแอปที่อัปเดตเป็นค่าฝั่งเซิร์ฟเวอร์)
หากคุณกำลังใช้ Listener แบบเรียลไทม์ในมุมมองใดมุมมองหนึ่งภายในแอป คุณสามารถตรวจสอบว่าพารามิเตอร์ที่เกี่ยวข้องกับมุมมองนั้นมีการเปลี่ยนแปลงหรือไม่ก่อนที่จะเปิดใช้งาน
ในบางครั้ง การดึงข้อมูล (ซึ่งเริ่มต้นเมื่อคุณเรียกใช้เมธอด fetch
หรือโดยการกำหนดค่าระยะไกลแบบเรียลไทม์) จะไม่ส่งผลให้มีการอัปเดตสำหรับไคลเอ็นต์ ในกรณีเหล่านี้
onUpdate
ระบบจะไม่เรียกใช้เมธอดหรือการเติมโค้ด
เพิ่มและนำ Listener ออก
addOnConfigUpdateListener
คือจุดแรกเข้าหลักสำหรับการกำหนดค่าระยะไกลแบบเรียลไทม์ การเรียก Listener นี้เป็นครั้งแรกในวงจรของแอปจะเปิดการเชื่อมต่อกับแบ็กเอนด์
การเรียกครั้งต่อๆ ไปจะใช้การเชื่อมต่อเดิมซ้ำ โดยทำให้ข้อความการใช้งานไม่ได้หลายๆ ข้อความที่อธิบายในการเชื่อมต่อไคลเอ็นต์-เซิร์ฟเวอร์แบบเรียลไทม์
การโทรจะแสดง "การลงทะเบียนผู้ฟัง" ซึ่งมีเมธอดชื่อ
remove
หากต้องการหยุดฟัง ให้จัดเก็บการอ้างอิงไปยังการลงทะเบียนผู้ฟัง โทร remove
เพื่อหยุดฟังการลงทะเบียนนี้ หากเป็นผู้ฟังที่ลงทะเบียนเพียงคนเดียว การเรียกใช้ remove
จะปิดการเชื่อมต่อแบบเรียลไทม์กับเซิร์ฟเวอร์
ขั้นตอนถัดไป
ดูหัวข้อเริ่มต้นใช้งานการกำหนดค่าระยะไกลของ Firebase เพื่อกำหนดค่าการกำหนดค่าระยะไกลและเริ่มฟังการอัปเดตแบบเรียลไทม์