للبدء في استخدام FCM، قم ببناء أبسط حالة استخدام: إرسال رسالة إشعار اختبارية من مؤلف الإشعارات إلى جهاز تطوير عندما يكون التطبيق في الخلفية على الجهاز. تسرد هذه الصفحة جميع الخطوات اللازمة لتحقيق ذلك، بدءًا من الإعداد وحتى التحقق - وقد تغطي الخطوات التي أكملتها بالفعل إذا قمت بإعداد تطبيق عميل Apple لـ FCM.
أضف Firebase إلى مشروع Apple الخاص بك
يغطي هذا القسم المهام التي قد تكون أكملتها إذا قمت بالفعل بتمكين ميزات Firebase الأخرى لتطبيقك. بالنسبة إلى FCM على وجه التحديد، ستحتاج إلى تحميل مفتاح مصادقة APNs الخاص بك والتسجيل للحصول على الإشعارات عن بعد .
المتطلبات الأساسية
قم بتثبيت ما يلي:
- Xcode 14.1 أو الأحدث
تأكد من أن مشروعك يلبي هذه المتطلبات:
- يجب أن يستهدف مشروعك إصدارات النظام الأساسي هذه أو الإصدارات الأحدث:
- دائرة الرقابة الداخلية 11
- ماك 10.13
- تي في او اس 12
- واتش او اس 6
- يجب أن يستهدف مشروعك إصدارات النظام الأساسي هذه أو الإصدارات الأحدث:
قم بإعداد جهاز Apple فعلي لتشغيل تطبيقك، وأكمل هذه المهام:
- احصل على مفتاح مصادقة إشعارات Apple Push لحساب 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 Dynamic Links لإعادة توجيه المستخدمين إلى صفحة متجر التطبيقات لديك ويستخدمه Google Analytics لاستيراد أحداث التحويل إلى إعلانات Google . إذا لم يكن لتطبيقك معرف App Store حتى الآن، فيمكنك إضافة المعرف لاحقًا في إعدادات المشروع .
انقر فوق تسجيل التطبيق .
أضف ملف تكوين Firebase
انقر فوق Download GoogleService-Info.plist للحصول على ملف تكوين منصات Firebase Apple (
GoogleService-Info.plist
).يحتوي ملف تكوين Firebase على معرفات فريدة ولكنها غير سرية لمشروعك. لمعرفة المزيد حول ملف التكوين هذا، قم بزيارة فهم مشاريع Firebase .
يمكنك تنزيل ملف تهيئة Firebase مرة أخرى في أي وقت.
تأكد من عدم إلحاق اسم ملف التكوين بأحرف إضافية، مثل
(2)
.
انقل ملف التكوين الخاص بك إلى جذر مشروع Xcode الخاص بك. إذا طُلب منك ذلك، حدد إضافة ملف التكوين إلى جميع الأهداف.
إذا كان لديك معرفات حزمة متعددة في مشروعك، فيجب عليك ربط كل معرف حزمة بتطبيق مسجل في وحدة تحكم Firebase حتى يتمكن كل تطبيق من الحصول على ملف GoogleService-Info.plist
الخاص به.
أضف حزم Firebase SDK إلى تطبيقك
استخدم Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.
- في Xcode، مع فتح مشروع التطبيق الخاص بك، انتقل إلى File > Add Packages .
- عندما يُطلب منك ذلك، قم بإضافة مستودع Firebase Apple الأساسي لـ SDK:
- اختر مكتبة Firebase Cloud Messaging.
- أضف علامة
-ObjC
إلى قسم إشارات الرابط الأخرى في إعدادات إنشاء هدفك. - للحصول على تجربة مثالية مع Firebase Cloud Messaging، نوصي بتمكين Google Analytics في مشروع Firebase الخاص بك وإضافة Firebase SDK لـ Google Analytics إلى تطبيقك. يمكنك تحديد المكتبة بدون مجموعة IDFA أو مع مجموعة IDFA.
- عند الانتهاء، سيبدأ Xcode تلقائيًا في حل وتنزيل تبعياتك في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
قم بتحميل مفتاح مصادقة APNs الخاص بك
قم بتحميل مفتاح مصادقة APNs الخاص بك إلى Firebase. إذا لم يكن لديك بالفعل مفتاح مصادقة APNs، فتأكد من إنشاء واحد في مركز أعضاء مطوري Apple .
داخل مشروعك في وحدة تحكم Firebase، حدد رمز الترس، وحدد إعدادات المشروع ، ثم حدد علامة التبويب Cloud Messaging .
في مفتاح مصادقة APNs ضمن تكوين تطبيق iOS ، انقر فوق الزر تحميل .
استعرض وصولاً إلى الموقع الذي حفظت فيه مفتاحك، وحدده، ثم انقر فوق فتح . أضف معرف المفتاح للمفتاح (المتوفر في مركز أعضاء مطوري Apple ) وانقر فوق تحميل .
قم بتهيئة Firebase في تطبيقك
ستحتاج إلى إضافة رمز تهيئة Firebase إلى تطبيقك. قم باستيراد وحدة Firebase وقم بتكوين مثيل مشترك كما هو موضح:
- قم باستيراد وحدة
FirebaseCore
فيUIApplicationDelegate
، بالإضافة إلى أي وحدات Firebase أخرى يستخدمها مندوب تطبيقك. على سبيل المثال، لاستخدام Cloud Firestore والمصادقة:سويفتويي
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
سويفت
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
ج موضوعية
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- قم بتكوين مثيل
FirebaseApp
مشترك في طريقةapplication(_:didFinishLaunchingWithOptions:)
:سويفتويي
// 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
. يجب عليك أيضًا تعطيل swizzling مندوب التطبيق. لمزيد من المعلومات، راجع تعليمات 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 عادةً رمزًا مميزًا لجهاز APN عند بدء التطبيق، توفر FCM رمزًا مميزًا للتسجيل عبر طريقة messaging:didReceiveRegistrationToken:
FIRMessagingDelegate
. تسترد FCM SDK رمزًا مميزًا جديدًا أو موجودًا أثناء التشغيل الأولي للتطبيق وكلما تم تحديث الرمز المميز أو إبطاله. في كافة الحالات، يستدعي FCM SDK messaging:didReceiveRegistrationToken:
برمز مميز صالح.
قد يتغير رمز التسجيل عندما:
- تتم استعادة التطبيق على جهاز جديد
- يقوم المستخدم بإلغاء تثبيت/إعادة تثبيت التطبيق
- يقوم المستخدم بمسح بيانات التطبيق.
تعيين مندوب المراسلة
لتلقي رموز التسجيل، قم بتنفيذ بروتوكول مندوب المراسلة وقم بتعيين خاصية delegate
FIRMessaging
بعد استدعاء [FIRApp configure]
. على سبيل المثال، إذا كان مفوض التطبيق الخاص بك يتوافق مع بروتوكول مفوض المراسلة، فيمكنك تعيين المفوض في application:didFinishLaunchingWithOptions:
لنفسه.
سويفت
Messaging.messaging().delegate = self
ج موضوعية
[FIRMessaging messaging].delegate = self;
جلب رمز التسجيل الحالي
يتم تسليم رموز التسجيل عبر طريقة messaging:didReceiveRegistrationToken:
. يتم استدعاء هذه الطريقة بشكل عام مرة واحدة لكل تطبيق يبدأ برمز التسجيل. عندما يتم استدعاء هذه الطريقة، فهذا هو الوقت المثالي للقيام بما يلي:
- إذا كان رمز التسجيل جديدًا، فأرسله إلى خادم التطبيق الخاص بك.
- اشترك في رمز التسجيل للمواضيع. وهذا مطلوب فقط للاشتراكات الجديدة أو للحالات التي أعاد فيها المستخدم تثبيت التطبيق.
يمكنك استرداد الرمز المميز مباشرةً باستخدام token(completion:) . يتم توفير خطأ غير فارغ إذا فشل استرداد الرمز المميز بأي شكل من الأشكال.
سويفت
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.
الخطوات التالية
لتجاوز رسائل الإشعارات وإضافة سلوك آخر أكثر تقدمًا إلى تطبيقك، راجع: