การส่งข้อความหัวข้อบน Flutter

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

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

สิ่งที่ควรคำนึงถึงเกี่ยวกับหัวข้อต่างๆ:

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

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

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

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

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

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

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

หากต้องการสมัครสมาชิกหัวข้อ ให้โทร subscribeToTopic() พร้อมชื่อหัวข้อ เมธอดนี้ส่งคืน Future ซึ่งแก้ไขเมื่อการสมัครสมาชิกสำเร็จ:

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

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

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

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