باستخدام FCM، يمكنك إرسال نوعَين من الرسائل إلى تطبيقات العملاء:
- يتم التعامل مع رسائل الإشعارات، مثل "رسائل العرض"، من خلال حزمة تطوير البرامج (SDK) لخدمة FCM تلقائيًا. (على أجهزة Android التي تستخدم
AndroidConfigV2، استخدِمRemoteNotificationلـ جميع الرسائل التي تعرض إشعارًا مرئيًا للمستخدم ليتم تسليمها بدون تأخير مقصود، ويتم عرض الإشعارات تلقائيًا سواء كان التطبيق في المقدّمة أو الخلفية ما لم يتم كتم صوتها صراحةً في رمز العميل). - رسائل البيانات التي يعالجها تطبيق العميل
تحتوي رسائل الإشعارات على مجموعة محدّدة مسبقًا من المفاتيح التي تظهر للمستخدمين، ويمكن أن تحتوي على حمولة بيانات اختيارية. في المقابل، تحتوي رسائل البيانات فقط على أزواج المفاتيح والقيم المخصّصة التي يحدّدها المستخدم. الحد الأقصى لحمولة كلا نوعَي الرسائل هو 4096 بايت، باستثناء الرسائل المُرسَلة من وحدة تحكّم Firebase التي تفرض حدًا أقصى يبلغ 1000 حرف.
| استخدام السيناريو | كيفية الإرسال | |
|---|---|---|
| رسالة إشعار | تعرض حزمة تطوير البرامج (SDK) لخدمة "FCM" الرسالة على أجهزة المستخدمين النهائيين نيابةً عن تطبيق العميل عندما يكون قيد التشغيل في الخلفية. بخلاف ذلك، إذا كان التطبيق قيد التشغيل في المقدّمة عند تلقّي الإشعار، يحدّد رمز التطبيق السلوك. |
|
| رسالة بيانات | يكون تطبيق العميل مسؤولاً عن معالجة رسائل البيانات. تحتوي رسائل البيانات على أزواج مفتاح/قيمة مخصّصة فقط بدون أسماء مفاتيح محجوزة (انظر أدناه). | في بيئة موثوقة، مثل
Cloud Functions
أو خادم التطبيق، استخدِم
Firebase Admin SDK أو
الإصدار الأول من واجهة برمجة التطبيقات HTTP.
في طلب الإرسال، اضبط مفتاح data.
|
يمكنك استخدام رسائل الإشعارات عندما تريد أن تتولّى حزمة تطوير البرامج (SDK) لخدمة "FCM" عرض إشعار تلقائيًا عندما يكون تطبيقك قيد التشغيل في الخلفية. يمكن لخدمة FCM إرسال رسالة إشعار مع حمولة بيانات اختيارية. في هذه الحالات، يعرض FCM حمولة الإشعار، ويتولى تطبيق العميل معالجة حمولة البيانات.
يمكنك استخدام رسائل البيانات عندما تريد معالجة الرسائل باستخدام رمز تطبيق العميل الخاص بك.
رسائل الإشعارات
يمكنك إرسال رسائل الإشعارات باستخدام وحدة تحكّم Firebase أو Firebase Admin SDK أو الإصدار 1 من واجهة برمجة تطبيقات HTTP لمراسلة Firebase السحابية. توفّر وحدة تحكّم Firebase اختبارات A/B المستندة إلى الإحصاءات لمساعدتك في تحسين رسائل الإشعارات.
لإرسال رسائل إشعارات باستخدام Firebase Admin SDK أو FCM
HTTP v1 API، اضبط مفتاح notification باستخدام المجموعة المحدّدة مسبقًا من خيارات
القيمة الرئيسية لرسالة الإشعار. يمكنك استخدام المثال التالي لتنسيق
رسالة إشعار في تطبيق الرسائل الفورية
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
يتم تسليم رسائل الإشعارات إلى قائمة الإشعارات عندما يكون التطبيق في الخلفية. بالنسبة إلى التطبيقات في المقدّمة، تتم معالجة الرسائل من خلال دالّة رد الاتصال.
يمكنك استخدام مرجع عنصر الإشعار في الإصدار 1 من واجهة برمجة تطبيقات HTTP لمراسلة Firebase السحابية للاطّلاع على القائمة الكاملة للمفاتيح المحدّدة مسبقًا والمتاحة لإنشاء رسائل الإشعارات.
رسائل البيانات
يمكنك اختيار طريقة استخدام حمولة FCM data لتنفيذ
نظام التشفير الذي تريده. تأكَّد من عدم استخدام أي كلمات محجوزة في
أزواج المفتاح/القيمة المخصّصة. تشمل الكلمات المحجوزة from أو message_type أو
أي كلمة تبدأ بـ google. أو gcm. أو gcm.notification..
يوضّح المثال التالي استخدام حقل البيانات المشتركة أو ذات المستوى الأعلى، والذي تفسّره البرامج على جميع الأنظمة الأساسية التي تتلقّى الرسالة. وعلى كل نظام أساسي، يتلقّى تطبيق العميل حمولة البيانات في دالّة رد الاتصال
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
رسائل الإشعارات التي تتضمّن حمولة بيانات اختيارية
يمكنك إرسال رسائل إشعارات تحتوي على حمولة اختيارية من أزواج المفتاح والقيمة المخصّصة آليًا أو باستخدام وحدة تحكّم Firebase. في منشئ الإشعارات، استخدِم حقول البيانات المخصّصة في الخيارات المتقدّمة.
يعتمد سلوك التطبيق عند تلقّي رسائل تتضمّن حمولات بيانات وإشعارات على ما إذا كان التطبيق يعمل في الخلفية أو في المقدّمة، أي ما إذا كان نشطًا في وقت الاستلام أم لا.
- عندما تكون التطبيقات في الخلفية، تتلقّى حمولة الإشعارات في لوحة الإشعارات، ولا تعالج حمولة البيانات إلا عندما ينقر المستخدم على الإشعار.
- عند تشغيل التطبيق في المقدّمة، يتلقّى التطبيق عنصر رسالة يتضمّن كلا الحمولتَين.
في ما يلي رسالة بتنسيق JSON تحتوي على كلّ من المفتاح notification والمفتاح data:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}