تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
استنادًا إلى نموذج النشر/الاشتراك، تتيح لك ميزة المراسلة حسب الموضوع في FCM إرسال رسالة إلى أجهزة متعددة اشتركت في موضوع معيّن. يمكنك إنشاء رسائل المواضيع حسب الحاجة، ويتولّى نظام FCM توجيه الرسائل وتسليمها بشكل موثوق إلى الأجهزة المناسبة.
على سبيل المثال، يمكن لمستخدمي تطبيق محلي لتوقّع المد والجزر الاشتراك في موضوع "تنبيهات تيارات المد والجزر" وتلقّي إشعارات بشأن أفضل الظروف لصيد الأسماك في المياه المالحة في مناطق محدّدة. يمكن لمستخدمي تطبيق رياضي الاشتراك في تلقّي آخر الأخبار تلقائيًا حول نتائج المباريات المباشرة الخاصة بفِرقهم المفضّلة.
في ما يلي بعض النقاط التي يجب أخذها في الاعتبار بشأن المواضيع:
تكون المراسلة حسب الموضوع مناسبة بشكل أفضل للمحتوى، مثل الطقس أو المعلومات الأخرى المتاحة للجميع.
تم تحسين رسائل المواضيع لتحقيق معدل نقل بيانات أعلى بدلاً من تقليل وقت الاستجابة. لإرسال الرسائل بسرعة وأمان إلى أجهزة فردية أو مجموعات صغيرة من الأجهزة، استهدِف الرموز المميزة للتسجيل بدلاً من المواضيع.
إذا كنت بحاجة إلى إرسال رسائل إلى أجهزة متعدّدة لكل مستخدم، ننصحك باستخدام
ميزة المراسلة في مجموعة الأجهزة
في حالات الاستخدام هذه.
تتيح ميزة المراسلة حسب الموضوع عددًا غير محدود من الاشتراكات لكل موضوع. ومع ذلك، تفرض خدمة FCM حدودًا في المجالات التالية:
يمكن الاشتراك في ما لا يزيد عن 2,000 موضوع لكل مثيل تطبيق.
إذا كنت تستخدم الاستيراد المجمّع
للاشتراك في مثيلات التطبيق، يقتصر كل طلب على 1, 000 مثيل للتطبيق.
يتم تحديد معدّل تكرار الاشتراكات الجديدة لكل مشروع. في حال إرسال عدد كبير جدًا من طلبات الاشتراك خلال فترة زمنية قصيرة، ستردّ خوادم FCM بالرمز 429 RESOURCE_EXHAUSTED ("تجاوزت الحصة"). أعِد المحاولة
باستخدام خوارزمية الرقود الأسي الثنائي.
الاشتراك في موضوع في تطبيق العميل
يمكن لتطبيقات العميل الاشتراك في أي موضوع حالي، أو يمكنها إنشاء موضوع جديد. عندما يشترك تطبيق عميل في اسم موضوع جديد (اسم غير متوفّر حاليًا في مشروعك على Firebase)، يتم إنشاء موضوع جديد بهذا الاسم في FCM ويمكن لأي عميل الاشتراك فيه بعد ذلك.
للاشتراك في موضوع، اتّصِل بالرقم subscribeToTopic() مع ذكر اسم الموضوع. تعرض هذه الطريقة Future، والذي يتم حله عند نجاح الاشتراك:
لإلغاء الاشتراك، اتّصِل بالرقم unsubscribeFromTopic() مع ذكر اسم الموضوع.
لا تتوافق الأداتان subscribeToTopic() وunsubscribeFromTopic() مع برامج الويب. للتعرّف على كيفية إدارة الاشتراكات لمستخدمي الويب، يُرجى الاطّلاع على مقالة إرسال رسائل إلى مواضيع على الويب/JavaScript.
تاريخ التعديل الأخير: 2025-09-05 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-09-05 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["\u003cbr /\u003e\n\nBased on the publish/subscribe model, FCM topic messaging allows you to send a message\nto multiple devices that have opted in to a particular topic. You compose topic messages as\nneeded, and FCM handles routing and delivering the message reliably to the right\ndevices.\n\nFor example, users of a local tide\nforecasting app could opt in to a \"tidal currents alerts\" topic and receive\nnotifications of optimal saltwater fishing conditions in specified areas. Users of a sports app\ncould subscribe to automatic updates in live game scores for their favorite\nteams.\n\nSome things to keep in mind about topics:\n\n- Topic messaging is best suited for content such as weather, or other publicly\n available information.\n\n- Topic messages are **optimized for throughput rather than latency** . For fast,\n secure delivery to single devices or small groups of devices,\n [target messages to registration tokens](/docs/cloud-messaging/send-message#send_messages_to_specific_devices),\n not topics.\n\n- If you need to send messages to multiple devices *per user* , consider\n [device group messaging](/docs/cloud-messaging/send-message#send_messages_to_device_groups)\n for those use cases.\n\n- Topic messaging supports unlimited subscriptions for each topic. However, FCM\n enforces limits in these areas:\n\n - One app instance can be subscribed to no more than 2000 topics.\n - If you are using [batch import](https://developers.google.com/instance-id/reference/server#manage_relationship_maps_for_multiple_app_instances) to subscribe app instances, each request is limited to 1000 app instances.\n - The frequency of new subscriptions is rate-limited per project. If you send too many subscription requests in a short period of time, FCM servers will respond with a `429 RESOURCE_EXHAUSTED` (\"quota exceeded\") response. Retry with exponential backoff.\n\nSubscribe the client app to a topic\n\nClient apps can subscribe to any existing topic, or they can create a new\ntopic. When a client app subscribes to a new topic name (one that does\nnot already exist for your Firebase project), a new topic of that name is\ncreated in FCM and any client can subsequently subscribe to it.\n\nTo subscribe to a topic, call `subscribeToTopic()` with the topic name. This method\nreturns a `Future`, which resolves when the subscription succeeded: \n\n await FirebaseMessaging.instance.subscribeToTopic(\"topic\");\n\nTo unsubscribe, call `unsubscribeFromTopic()` with the topic name.\n\n`subscribeToTopic()` and `unsubscribeFromTopic()` are not supported for web\nclients. To learn how to manage subscriptions for web users, see\n[Send messages to topics on Web/JavaScript](https://firebase.google.com/docs/cloud-messaging/js/topic-messaging).\n\nNext steps\n\n- Learn how to [send topic messages](/docs/cloud-messaging/send-message#send-messages-to-topics).\n- Learn how to [Manage topic subscriptions on the server](/docs/cloud-messaging/manage-topics)."]]