ข้อความตามหัวข้อใน 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() บนเว็บ ลูกค้า โปรดดูวิธีจัดการการสมัครใช้บริการสำหรับผู้ใช้เว็บที่หัวข้อ ส่งข้อความถึงหัวข้อบน Web/JavaScript

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