ข้อความตามหัวข้อใน 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

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