ข้อความตามหัวข้อใน Flutter

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

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

สิ่งที่ควรคำนึงถึงเกี่ยวกับหัวข้อมีดังนี้

  • การรับส่งข้อความตามหัวข้อเหมาะสําหรับเนื้อหา เช่น สภาพอากาศ หรือข้อมูลอื่นๆ ที่เผยแพร่ต่อสาธารณะ

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

  • หากต้องการส่งข้อความไปยังอุปกรณ์หลายเครื่องต่อผู้ใช้ ให้ลองใช้การรับส่งข้อความแบบกลุ่มอุปกรณ์สำหรับกรณีการใช้งานเหล่านั้น

  • การรับส่งข้อความตามหัวข้อรองรับการสมัครใช้บริการแบบไม่จำกัดสำหรับแต่ละหัวข้อ อย่างไรก็ตาม FCM จะบังคับใช้ขีดจํากัดในด้านต่อไปนี้

    • อินสแตนซ์แอป 1 รายการจะติดตามหัวข้อได้ไม่เกิน 2,000 หัวข้อ
    • หากคุณใช้การนําเข้าแบบเป็นกลุ่มเพื่อสมัครใช้บริการอินสแตนซ์แอป คําขอแต่ละรายการจะจํากัดไว้ที่อินสแตนซ์แอป 1, 000 รายการ
    • ความถี่ของการสมัครใช้บริการใหม่จะจำกัดอัตราต่อโปรเจ็กต์ หากคุณส่งคำขอสมัครใช้บริการมากเกินไปในระยะเวลาสั้นๆ เซิร์ฟเวอร์ FCM จะตอบกลับด้วยการตอบกลับ 429 RESOURCE_EXHAUSTED ("เกินโควต้า") ลองอีกครั้งโดยใช้ Exponential Backoff

สมัครใช้บริการแอปไคลเอ็นต์ในหัวข้อ

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

หากต้องการสมัครรับข้อมูลหัวข้อ ให้เรียกใช้ subscribeToTopic() พร้อมชื่อหัวข้อ เมธอดนี้จะแสดงผล Future ซึ่งจะแสดงผลเมื่อการสมัครใช้บริการสําเร็จ

await FirebaseMessaging.instance.subscribeToTopic("topic");

หากต้องการยกเลิกการติดตาม ให้โทรหา unsubscribeFromTopic() พร้อมชื่อหัวข้อ

แต่ไคลเอ็นต์เว็บไม่รองรับ subscribeToTopic() และ unsubscribeFromTopic() ดูวิธีจัดการการติดตามสำหรับผู้ใช้เว็บได้ที่ ส่งข้อความไปยังหัวข้อในเว็บ/JavaScript

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