Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

قم بإعداد تطبيق Firebase Cloud Messaging على Flutter

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

اتبع هذه الخطوات لإعداد عميل FCM على Flutter.

الإعداد والمتطلبات الخاصة بالمنصة

تعتمد بعض الخطوات المطلوبة على النظام الأساسي الذي تستهدفه.

iOS +

تفعيل إمكانيات التطبيق في Xcode

قبل أن يبدأ التطبيق الخاص بك في تلقي الرسائل ، يجب عليك تمكين دفع الإخطارات وأوضاع الخلفية في مشروع Xcode الخاص بك.

  1. افتح مساحة عمل مشروع Xcode الخاص بك ( ios/Runner.xcworkspace ).
  2. تفعيل دفع الإخطارات .
  3. قم بتمكين جلب الخلفية وأوضاع تنفيذ خلفية الإشعارات عن بُعد .

قم بتحميل مفتاح مصادقة APNs الخاص بك

قبل استخدام FCM ، قم بتحميل شهادة APN الخاصة بك إلى Firebase. إذا لم يكن لديك بالفعل شهادة APN ، فقم بإنشاء واحدة في مركز أعضاء مطوري Apple .

  1. داخل مشروعك في وحدة تحكم Firebase ، حدد رمز الترس ، وحدد إعدادات المشروع ، ثم حدد علامة التبويب Cloud Messaging .
  2. حدد الزر تحميل شهادة للحصول على شهادة التطوير أو شهادة الإنتاج أو كليهما. مطلوب واحد على الأقل.
  3. لكل شهادة ، حدد ملف .p12 ، وقم بتوفير كلمة المرور ، إن وجدت. تأكد من تطابق معرّف الحزمة لهذه الشهادة مع معرّف الحزمة لتطبيقك. حدد حفظ .

طريقة أزيز

لاستخدام المكون الإضافي FCM Flutter على أجهزة Apple ، يجب عدم تعطيل طريقة swizzling. Swizzling مطلوب ، وبدونه ، لا تعمل ميزات Firebase الرئيسية مثل التعامل مع رمز FCM بشكل صحيح.

ذكري المظهر

خدمات جوجل بلاي

تتطلب عملاء FCM أجهزة تعمل بنظام التشغيل Android 4.4 أو إصدار أحدث مثبت عليها أيضًا خدمات Google Play ، أو محاكي يعمل بنظام Android 4.4 مع واجهات برمجة تطبيقات Google. لاحظ أنك لست مقيدًا بنشر تطبيقات Android من خلال متجر Google Play.

يجب أن تتحقق التطبيقات التي تعتمد على Play Services SDK دائمًا من الجهاز بحثًا عن ملف APK متوافق لخدمات Google Play قبل الوصول إلى ميزات خدمات Google Play. من المستحسن القيام بذلك في مكانين: في طريقة onCreate() للنشاط الرئيسي ، وفي طريقة onResume() الخاصة بها. يضمن تسجيل الوصول onCreate() عدم إمكانية استخدام التطبيق دون إجراء فحص ناجح. يضمن تسجيل الوصول onResume() أنه إذا عاد المستخدم إلى التطبيق قيد التشغيل من خلال بعض الوسائل الأخرى ، مثل زر الرجوع ، فسيظل الفحص جارياً.

إذا لم يكن الجهاز يحتوي على إصدار متوافق من خدمات Google Play ، فيمكن لتطبيقك الاتصال بـ GoogleApiAvailability.makeGooglePlayServicesAvailable() للسماح للمستخدمين بتنزيل خدمات Google Play من متجر Play.

الويب

تكوين بيانات اعتماد الويب باستخدام FCM

تستخدم واجهة ويب FCM بيانات اعتماد الويب المسماة "تعريف خادم التطبيقات التطوعي" أو مفاتيح "VAPID" ، للسماح بإرسال الطلبات إلى خدمات الدفع عبر الويب المدعومة. للاشتراك في تطبيقك لدفع الإشعارات ، تحتاج إلى ربط زوج من المفاتيح بمشروع Firebase. يمكنك إما إنشاء زوج مفاتيح جديد أو استيراد زوج المفاتيح الحالي من خلال وحدة تحكم Firebase.

قم بإنشاء زوج مفاتيح جديد
  1. افتح علامة التبويب Cloud Messaging في جزء إعدادات وحدة تحكم Firebase وانتقل إلى قسم تكوين الويب .

  2. في علامة تبويب شهادات Web Push ، انقر فوق إنشاء زوج مفاتيح . تعرض وحدة التحكم إشعارًا بإنشاء زوج المفاتيح ، وتعرض سلسلة المفتاح العام وتاريخ الإضافة.

استيراد زوج مفاتيح موجود

إذا كان لديك زوج مفاتيح موجود تستخدمه بالفعل مع تطبيق الويب الخاص بك ، فيمكنك استيراده إلى FCM حتى تتمكن من الوصول إلى مثيلات تطبيق الويب الحالية من خلال واجهات برمجة تطبيقات FCM. لاستيراد المفاتيح ، يجب أن يكون لديك وصول على مستوى المالك إلى مشروع Firebase. قم باستيراد مفتاحك الحالي العام والخاص في نموذج تشفير آمن لعنوان URL الأساسي 64:

  1. افتح علامة التبويب Cloud Messaging في جزء إعدادات وحدة تحكم Firebase وانتقل إلى قسم تكوين الويب .

  2. في علامة تبويب شهادات Web Push ، ابحث عن نص الرابط وحدده ، "استيراد زوج مفاتيح موجود".

  3. في مربع الحوار استيراد زوج مفاتيح ، أدخل المفاتيح العامة والخاصة في الحقول المقابلة وانقر فوق استيراد . تعرض وحدة التحكم سلسلة المفتاح العام وتاريخ الإضافة.

لمزيد من المعلومات حول تنسيق المفاتيح وكيفية إنشائها ، راجع مفاتيح خادم التطبيقات .

قم بتثبيت البرنامج المساعد FCM

  1. قم بتثبيت وتهيئة مكونات Firebase الإضافية لـ Flutter إذا لم تكن قد قمت بذلك بالفعل.

  2. من جذر مشروع Flutter الخاص بك ، قم بتشغيل الأمر التالي لتثبيت المكون الإضافي:

    flutter pub add firebase_messaging
    
  3. بمجرد الانتهاء ، أعد بناء تطبيق Flutter الخاص بك:

    flutter run
    

الوصول إلى رمز التسجيل

لإرسال رسالة إلى جهاز معين ، تحتاج إلى معرفة رمز تسجيل هذا الجهاز. نظرًا لأنك ستحتاج إلى إدخال الرمز المميز في حقل في وحدة التحكم في الإشعارات لإكمال هذا البرنامج التعليمي ، تأكد من نسخ الرمز المميز أو تخزينه بشكل آمن بعد استرداده.

لاسترداد رمز التسجيل الحالي لمثيل تطبيق ، اتصل getToken() . إذا لم يتم منح إذن الإعلام ، فستطلب هذه الطريقة من المستخدم أذونات الإعلام. خلاف ذلك ، فإنه يقوم بإرجاع رمز أو يرفض المستقبل بسبب خطأ.

final fcmToken = await FirebaseMessaging.instance.getToken();

على منصات الويب ، قم بتمرير مفتاح VAPID العام الخاص بك إلى getToken() :

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

ليتم إعلامك عند تحديث الرمز المميز ، اشترك في تدفق onTokenRefresh :

FirebaseMessaging.instance.onTokenRefresh
    .listen((fcmToken) {
      // TODO: If necessary send token to application server.

      // Note: This callback is fired at each app startup and whenever a new
      // token is generated.
    })
    .onError((err) {
      // Error getting token.
    });

منع التهيئة التلقائية

عندما يتم إنشاء رمز مميز لتسجيل FCM ، تقوم المكتبة بتحميل المعرف وبيانات التكوين إلى Firebase. إذا كنت تفضل منع الإنشاء التلقائي للرمز المميز ، فقم بتعطيل التهيئة التلقائية في وقت الإنشاء.

iOS

في نظام iOS ، أضف قيمة بيانات وصفية إلى Info.plist الخاص بك:

FirebaseMessagingAutoInitEnabled = NO

ذكري المظهر

على Android ، قم بتعطيل جمع التحليلات والتهيئة التلقائية لـ FCM (يجب عليك تعطيل كليهما) عن طريق إضافة قيم البيانات الوصفية هذه إلى AndroidManifest.xml الخاص بك:

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

أعد تمكين التهيئة التلقائية FCM في وقت التشغيل

لتمكين التهيئة التلقائية لمثيل تطبيق معين ، اتصل setAutoInitEnabled() :

await FirebaseMessaging.instance.setAutoInitEnabled(true);

تستمر هذه القيمة عبر عمليات إعادة تشغيل التطبيق بمجرد تعيينها.

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

بعد إعداد تطبيق العميل ، ستكون جاهزًا لبدء إرسال الرسائل النهائية باستخدام مؤلف الإشعارات . انظر إرسال رسالة اختبار إلى تطبيق يعمل في الخلفية .

لإضافة سلوك آخر أكثر تقدمًا إلى تطبيقك ، ستحتاج إلى تنفيذ خادم .

بعد ذلك ، في عميل التطبيق الخاص بك: