إرسال رسائل بشأن المواضيع على 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.

الخطوات التالية