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

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

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

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

دائرة الرقابة الداخلية +

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

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

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

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

قبل استخدام FCM، قم بتحميل شهادة APNs إلى Firebase. إذا لم تكن لديك شهادة APNs بالفعل، فقم بإنشاء واحدة في مركز أعضاء مطوري 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 ، انقر فوق Generate Key Pair . تعرض وحدة التحكم إشعارًا بإنشاء زوج المفاتيح، وتعرض سلسلة المفاتيح العامة وتاريخ الإضافة.

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

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

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

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

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

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

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

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

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

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

    flutter run
    

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

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

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

// You may set the permission requests to "provisional" which allows the user to choose what type
// of notifications they would like to receive once the user receives a notification.
final notificationSettings = await FirebaseMessaging.instance.requestPermission(provisional: true);

// For apple platforms, ensure the APNS token is available before making any FCM plugin API calls
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if (apnsToken != null) {
 // APNS token is available, make FCM plugin API requests...
}

على منصات الويب، قم بتمرير مفتاح 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، أضف قيمة بيانات التعريف إلى Info.plist الخاص بك:

FirebaseMessagingAutoInitEnabled = NO

ذكري المظهر

على Android، قم بتعطيل مجموعة Analytics والتهيئة التلقائية لـ 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);

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

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

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

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

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