پیام‌رسانی موضوع در فلاتر

بر اساس مدل انتشار/اشتراک، پیام‌رسانی موضوع FCM به شما امکان می‌دهد پیامی را به چندین دستگاهی که موضوع خاصی را انتخاب کرده‌اند ارسال کنید. شما پیام‌های موضوعی را در صورت نیاز می‌نویسید، و FCM مسیریابی و تحویل پیام را به‌طور قابل اعتماد به دستگاه‌های مناسب انجام می‌دهد.

برای مثال، کاربران یک برنامه محلی پیش‌بینی جزر و مد می‌توانند موضوع «هشدار جریان‌های جزر و مد» را انتخاب کنند و اعلان‌های شرایط بهینه ماهیگیری در آب‌های شور را در مناطق مشخص دریافت کنند. کاربران یک برنامه ورزشی می توانند مشترک به روزرسانی های خودکار در نمرات بازی های زنده برای تیم های مورد علاقه خود شوند.

نکاتی که در مورد موضوعات باید در نظر داشت:

  • پیام‌های موضوعی برای محتوایی مانند آب‌وهوا یا سایر اطلاعات در دسترس عموم مناسب‌تر است.

  • پیام‌های موضوعی به‌جای تأخیر بهینه‌سازی شده‌اند . برای تحویل سریع و ایمن به تک دستگاه‌ها یا گروه‌های کوچکی از دستگاه‌ها، پیام‌ها را به نشانه‌های ثبت‌نام، نه موضوعات، هدف قرار دهید .

  • اگر نیاز به ارسال پیام به چندین دستگاه برای هر کاربر دارید، پیام‌های گروهی دستگاه را برای آن موارد استفاده در نظر بگیرید.

  • پیام‌رسانی موضوع از اشتراک‌های نامحدود برای هر موضوع پشتیبانی می‌کند. با این حال، FCM محدودیت هایی را در این زمینه ها اعمال می کند:

    • یک نمونه برنامه را نمی توان در بیش از 2000 موضوع مشترک کرد.
    • اگر از واردات دسته‌ای برای اشتراک نمونه‌های برنامه استفاده می‌کنید، هر درخواست به 1000 نمونه برنامه محدود می‌شود.
    • تعداد اشتراک‌های جدید در هر پروژه با نرخ محدود است. اگر تعداد زیادی درخواست اشتراک را در مدت زمان کوتاهی ارسال کنید، سرورهای FCM با پاسخ 429 RESOURCE_EXHAUSTED ("بیش از سهمیه") پاسخ خواهند داد. با عقب نشینی نمایی دوباره امتحان کنید.

برنامه مشتری را در یک موضوع مشترک کنید

برنامه های مشتری می توانند در هر موضوع موجود مشترک شوند یا می توانند موضوع جدیدی ایجاد کنند. هنگامی که یک برنامه مشتری در نام موضوع جدیدی مشترک می شود (نامی که قبلاً برای پروژه Firebase شما وجود ندارد)، موضوع جدیدی با آن نام در FCM ایجاد می شود و هر مشتری می تواند متعاقباً در آن مشترک شود.

برای اشتراک در یک موضوع، subscribeToTopic() با نام موضوع فراخوانی کنید. این روش یک Future را برمی‌گرداند که پس از موفقیت در اشتراک حل می‌شود:

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

برای لغو اشتراک، unsubscribeFromTopic() با نام موضوع فراخوانی کنید.

subscribeToTopic() و unsubscribeFromTopic() برای مشتریان وب پشتیبانی نمی شوند. برای یادگیری نحوه مدیریت اشتراک برای کاربران وب، به ارسال پیام به موضوعات در وب/جاوا اسکریپت مراجعه کنید.

مراحل بعدی