لبدء استخدام FCM ، قم ببناء أبسط حالة استخدام: إرسال رسالة إخطار اختبارية من مؤلف الإشعارات إلى جهاز تطوير عندما يكون التطبيق في الخلفية على الجهاز. تسرد هذه الصفحة جميع الخطوات لتحقيق ذلك ، من الإعداد إلى التحقق - قد تغطي الخطوات التي أكملتها بالفعل إذا قمت بإعداد تطبيق عميل Apple لـ FCM.
أضف Firebase إلى مشروع Apple الخاص بك
يغطي هذا القسم المهام التي ربما تكون قد أكملتها إذا كنت قد قمت بالفعل بتمكين ميزات Firebase الأخرى لتطبيقك. بالنسبة إلى FCM على وجه التحديد ، ستحتاج إلى تحميل مفتاح مصادقة APN الخاص بك والتسجيل في الإشعارات عن بُعد .
المتطلبات الأساسية
قم بتثبيت ما يلي:
- Xcode 14.1 أو أحدث
تأكد من أن مشروعك يلبي هذه المتطلبات:
- يجب أن يستهدف مشروعك إصدارات النظام الأساسي هذه أو أحدث:
- iOS 11
- macOS 10.13
- tvOS 12
- watchOS 6
- يجب أن يستهدف مشروعك إصدارات النظام الأساسي هذه أو أحدث:
قم بإعداد جهاز Apple فعليًا لتشغيل تطبيقك ، وأكمل هذه المهام:
- احصل على مفتاح مصادقة Apple Push Notification لحساب Apple Developer الخاص بك.
- قم بتمكين دفع الإخطارات في XCode ضمن التطبيق> القدرات .
- سجّل الدخول إلى Firebase باستخدام حساب Google الخاص بك.
إذا لم يكن لديك بالفعل مشروع Xcode وترغب فقط في تجربة أحد منتجات Firebase ، فيمكنك تنزيل إحدى عينات البدء السريع الخاصة بنا.
أنشئ مشروع Firebase
قبل أن تتمكن من إضافة Firebase إلى تطبيق Apple الخاص بك ، تحتاج إلى إنشاء مشروع Firebase للاتصال بتطبيقك. تفضل بزيارة فهم مشاريع Firebase لمعرفة المزيد حول مشاريع Firebase.
سجّل تطبيقك في Firebase
لاستخدام Firebase في تطبيق Apple ، يلزمك تسجيل تطبيقك في مشروع Firebase. غالبًا ما يسمى تسجيل تطبيقك "إضافة" تطبيقك إلى مشروعك.
انتقل إلى وحدة تحكم Firebase .
في وسط صفحة نظرة عامة على المشروع ، انقر فوق أيقونة + iOS لبدء سير عمل الإعداد.
إذا كنت قد أضفت بالفعل تطبيقًا إلى مشروع Firebase ، فانقر فوق إضافة تطبيق لعرض خيارات النظام الأساسي.
أدخل معرف حزمة التطبيق الخاص بك في حقل معرف الحزمة .
يحدد معرف الحزمة بشكل فريد تطبيقًا في نظام Apple البيئي.
ابحث عن معرف الحزمة الخاص بك: افتح مشروعك في Xcode ، وحدد التطبيق ذي المستوى الأعلى في متصفح المشروع ، ثم حدد علامة التبويب "عام" .
قيمة حقل معرف الحزمة هي معرف الحزمة (على سبيل المثال ،
com.yourcompany.yourproject
).اعلم أن قيمة معرّف الحزمة حساسة لحالة الأحرف ، ولا يمكن تغييرها لتطبيق Firebase هذا بعد تسجيله في مشروع Firebase.
(اختياري) أدخل معلومات التطبيق الأخرى: لقب التطبيق ومعرف متجر التطبيقات .
لقب التطبيق : معرّف داخلي ملائم يكون مرئيًا لك فقط في وحدة تحكم Firebase
معرف متجر التطبيقات : تستخدمه روابط Firebase الديناميكية لإعادة توجيه المستخدمين إلى صفحة App Store الخاصة بك ومن خلال Google Analytics لاستيراد أحداث التحويل إلى إعلانات Google . إذا لم يكن لتطبيقك معرّف متجر التطبيقات حتى الآن ، يمكنك إضافة المعرّف لاحقًا في إعدادات المشروع .
انقر فوق تسجيل التطبيق .
أضف ملف تهيئة Firebase
انقر فوق تنزيل GoogleService-Info.plist للحصول على ملف تهيئة أنظمة تشغيل Firebase Apple (
GoogleService-Info.plist
).يحتوي ملف تهيئة Firebase على معرّفات فريدة ولكنها غير سرية لمشروعك. لمعرفة المزيد حول ملف التكوين هذا ، تفضل بزيارة فهم مشاريع Firebase .
يمكنك تنزيل ملف تهيئة Firebase مرة أخرى في أي وقت.
تأكد من عدم إلحاق اسم ملف التكوين بأحرف إضافية ، مثل
(2)
.
انقل ملف التكوين الخاص بك إلى جذر مشروع Xcode الخاص بك. إذا طُلب منك ذلك ، فحدد لإضافة ملف التكوين إلى جميع الأهداف.
إذا كان لديك عدة معرّفات حزمة في مشروعك ، فيجب عليك إقران كل معرّف حزمة بتطبيق مسجل في وحدة تحكم Firebase بحيث يمكن أن يكون لكل تطبيق ملف GoogleService-Info.plist
الخاص به.
أضف حزم Firebase SDK إلى تطبيقك
استخدم Swift Package Manager لتثبيت وإدارة تبعيات Firebase.
- في Xcode ، مع فتح مشروع التطبيق الخاص بك ، انتقل إلى ملف> إضافة حزم .
- عند المطالبة ، أضف مستودع SDK لأنظمة Apple الأساسية لـ Firebase:
- اختر مكتبة Firebase Cloud Messaging.
- للحصول على تجربة مثالية مع Firebase Cloud Messaging ، نوصي بتمكين Google Analytics في مشروع Firebase وإضافة Firebase SDK لـ Google Analytics إلى تطبيقك. يمكنك تحديد المكتبة بدون مجموعة IDFA أو مع مجموعة IDFA.
- عند الانتهاء ، سيبدأ Xcode تلقائيًا في حل وتنزيل التبعيات الخاصة بك في الخلفية.
https://github.com/firebase/firebase-ios-sdk
قم بتحميل مفتاح مصادقة APNs الخاص بك
قم بتحميل مفتاح مصادقة APNs الخاص بك إلى Firebase. إذا لم يكن لديك بالفعل مفتاح مصادقة APNs ، فتأكد من إنشاء واحد في مركز أعضاء مطوري Apple .
داخل مشروعك في وحدة تحكم Firebase ، حدد رمز الترس ، وحدد إعدادات المشروع ، ثم حدد علامة التبويب Cloud Messaging .
في مفتاح مصادقة APN ضمن تكوين تطبيق iOS ، انقر فوق الزر تحميل .
استعرض للوصول إلى الموقع الذي قمت فيه بحفظ مفتاحك ، وحدده ، وانقر فوق فتح . أضف معرف المفتاح للمفتاح (متوفر في مركز أعضاء مطوري Apple ) وانقر فوق تحميل .
ابدأ تشغيل Firebase في تطبيقك
ستحتاج إلى إضافة رمز تهيئة Firebase إلى تطبيقك. قم باستيراد وحدة Firebase وتهيئة مثيل مشترك كما هو موضح:
- قم باستيراد وحدة
FirebaseCore
في مندوبUIApplicationDelegate
، بالإضافة إلى أي وحدات Firebase أخرى يستخدمها مفوض التطبيق. على سبيل المثال ، لاستخدام Cloud Firestore والمصادقة:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
سويفت
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
ج موضوعية
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- قم بتهيئة مثيل
FirebaseApp
مشترك فيapplication(_:didFinishLaunchingWithOptions:)
:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
سويفت
// Use Firebase library to configure APIs FirebaseApp.configure()
ج موضوعية
// Use Firebase library to configure APIs [FIRApp configure];
- إذا كنت تستخدم SwiftUI ، فيجب عليك إنشاء مفوض للتطبيق وإرفاقه بهيكل
App
الخاص بك عبرUIApplicationDelegateAdaptor
أوNSApplicationDelegateAdaptor
. يجب عليك أيضًا تعطيل استخدام مفوض التطبيق. لمزيد من المعلومات ، راجع تعليمات SwiftUI .SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
التسجيل للحصول على الإخطارات عن بعد
سواء عند بدء التشغيل ، أو في النقطة المطلوبة في تدفق التطبيق الخاص بك ، قم بتسجيل التطبيق الخاص بك للإشعارات عن بعد. سجل المكالماتregisterForRemoteNotifications
كما هو موضح:سويفت
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
ج موضوعية
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
الوصول إلى رمز التسجيل
لإرسال رسالة إلى جهاز معين ، تحتاج إلى معرفة رمز تسجيل هذا الجهاز. نظرًا لأنك ستحتاج إلى إدخال الرمز المميز في حقل في مؤلف الإشعارات لإكمال هذا البرنامج التعليمي ، تأكد من نسخ الرمز المميز أو تخزينه بشكل آمن بعد استعادته.
بشكل افتراضي ، تنشئ FCM SDK رمزًا مميزًا للتسجيل لمثيل تطبيق العميل عند تشغيل التطبيق. على غرار رمز جهاز APNs ، يتيح لك هذا الرمز المميز إرسال إشعارات موجهة إلى أي مثيل معين لتطبيقك.
بنفس الطريقة التي تقدم بها منصات Apple عادةً رمزًا مميزًا لجهاز APNs عند بدء التطبيق ، توفر FCM رمزًا مميزًا للتسجيل عبر رسائل FIRMessagingDelegate
messaging:didReceiveRegistrationToken:
method. يسترد FCM SDK رمزًا جديدًا أو موجودًا أثناء التشغيل الأولي للتطبيق وعندما يتم تحديث الرمز المميز أو إبطاله. في جميع الحالات ، تستدعي FCM SDK messaging:didReceiveRegistrationToken:
برمز مميز صالح.
قد يتغير رمز التسجيل عندما:
- تمت استعادة التطبيق على جهاز جديد
- يقوم المستخدم بإلغاء تثبيت / إعادة تثبيت التطبيق
- يقوم المستخدم بمسح بيانات التطبيق.
قم بتعيين مفوض المراسلة
لتلقي الرموز المميزة للتسجيل ، قم بتنفيذ بروتوكول مفوض المراسلة وقم بتعيين خاصية delegate
FIRMessaging
بعد استدعاء [FIRApp configure]
. على سبيل المثال ، إذا كان مفوض التطبيق الخاص بك يتوافق مع بروتوكول مفوض المراسلة ، فيمكنك تعيين المفوض على application:didFinishLaunchingWithOptions:
لنفسه.
سويفت
Messaging.messaging().delegate = self
ج موضوعية
[FIRMessaging messaging].delegate = self;
إحضار رمز التسجيل الحالي
يتم تسليم الرموز المميزة للتسجيل عبر طريقة messaging:didReceiveRegistrationToken:
يتم استدعاء هذه الطريقة بشكل عام مرة واحدة لكل تطبيق يبدأ برمز التسجيل. عندما يتم استدعاء هذه الطريقة ، فهذا هو الوقت المثالي لـ:
- إذا كان رمز التسجيل جديدًا ، فأرسله إلى خادم التطبيق الخاص بك.
- اشترك في رمز التسجيل في الموضوعات. هذا مطلوب فقط للاشتراكات الجديدة أو في الحالات التي أعاد فيها المستخدم تثبيت التطبيق.
يمكنك استرداد الرمز المميز مباشرة باستخدام الرمز المميز (الإكمال :) . يتم توفير خطأ غير فارغ إذا فشل استرداد الرمز المميز بأي شكل من الأشكال.
سويفت
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
ج موضوعية
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];
يمكنك استخدام هذه الطريقة في أي وقت للوصول إلى الرمز المميز بدلاً من تخزينه.
تحديث رمز المراقبة
ليتم إعلامك عند تحديث الرمز المميز ، قم بتوفير مفوض يتوافق مع بروتوكول مفوض المراسلة. يسجل المثال التالي المفوض ويضيف طريقة التفويض المناسبة:
سويفت
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) { print("Firebase registration token: \(String(describing: fcmToken))") let dataDict: [String: String] = ["token": fcmToken ?? ""] NotificationCenter.default.post( name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict ) // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
ج موضوعية
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken { NSLog(@"FCM registration token: %@", fcmToken); // Notify about received token. NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"]; [[NSNotificationCenter defaultCenter] postNotificationName: @"FCMToken" object:nil userInfo:dataDict]; // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
بدلاً من ذلك ، يمكنك الاستماع إلى NSNotification
المسمى kFIRMessagingRegistrationTokenRefreshNotification
بدلاً من توفير طريقة تفويض. تحتوي خاصية الرمز المميز دائمًا على قيمة الرمز المميز الحالي.
إرسال رسالة إعلام
قم بتثبيت التطبيق وتشغيله على الجهاز المستهدف. على أجهزة Apple ، ستحتاج إلى قبول طلب الإذن لتلقي الإشعارات عن بُعد.
تأكد من أن التطبيق في الخلفية على الجهاز.
في وحدة تحكم Firebase ، افتح صفحة المراسلة .
إذا كانت هذه هي رسالتك الأولى ، فحدد إنشاء حملتك الأولى .
- حدد رسائل إعلام Firebase وحدد إنشاء .
بخلاف ذلك ، في علامة التبويب "الحملات" ، حدد "حملة جديدة " ثم "التنبيهات" .
أدخل نص الرسالة. جميع الحقول الأخرى اختيارية.
حدد إرسال رسالة اختبار من الجزء الأيمن.
في الحقل المسمى إضافة رمز تسجيل FCM ، أدخل رمز التسجيل الذي حصلت عليه في قسم سابق من هذا الدليل.
حدد اختبار .
بعد تحديد اختبار ، يجب أن يتلقى جهاز العميل المستهدف (مع التطبيق في الخلفية) الإشعار.
للحصول على نظرة ثاقبة حول تسليم الرسائل إلى تطبيقك ، راجع لوحة تحكم تقارير FCM ، التي تسجل عدد الرسائل المرسلة والمفتوحة على أجهزة Apple و Android ، إلى جانب بيانات "مرات الظهور" (الإشعارات التي يراها المستخدمون) لتطبيقات Android.
الخطوات التالية
لتجاوز رسائل الإشعارات وإضافة سلوك آخر أكثر تقدمًا إلى تطبيقك ، راجع: