了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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


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

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

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีที่คุณสามารถใช้ Remote Config ให้ดู What can you do with Remote Config?

ในคู่มือนี้ คุณจะ:

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

การเชื่อมต่อไคลเอนต์-เซิร์ฟเวอร์ตามเวลาจริง

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

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

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

เนื่องจากการเชื่อมต่อระหว่างไคลเอนต์กับเซิร์ฟเวอร์ทำผ่าน HTTP จึงไม่ต้องการการพึ่งพาไลบรารีอื่น

ฟังการปรับปรุง

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

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

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

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

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

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

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

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

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

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

เพิ่มและลบผู้ฟัง

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

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

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

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

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

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