للبدء باستخدام FCM، أنشئ أبسط حالة استخدام: إرسال رسالة إشعار اختباري من أداة إنشاء الإشعارات إلى جهاز تطوير عندما يكون التطبيق في الخلفية على الجهاز. تعرض هذه الصفحة جميع الخطوات اللازمة لتحقيق ذلك، بدءًا من الإعداد إلى إثبات الملكية، وقد تشمل الخطوات التي سبق أن أكملتها إذا سبق لك إعداد تطبيق عميل Apple لنظام التشغيل FCM.
إضافة Firebase إلى مشروع Apple الخاص بك
يتناول هذا القسم المهام التي ربما تكون قد أكملتها إذا سبق لك تفعيل ميزات Firebase الأخرى لتطبيقك. بالنسبة إلى FCM على وجه التحديد، عليك تحميل مفتاح مصادقة APNs و التسجيل للحصول على الإشعارات عن بُعد.
المتطلبات الأساسية
ثبِّت ما يلي:
- Xcode 15.2 أو إصدار أحدث
تأكَّد من أنّ مشروعك يستوفي المتطلبات التالية:
- يجب أن يستهدف مشروعك إصدارات النظام الأساسي هذه أو الإصدارات الأحدث:
- الإصدار 13 من نظام التشغيل iOS
- الإصدار 10.15 من نظام التشغيل macOS
- tvOS 13
- watchOS 7
- يجب أن يستهدف مشروعك إصدارات النظام الأساسي هذه أو الإصدارات الأحدث:
عليك إعداد جهاز Apple لتشغيل تطبيقك، وإكمال المهام التالية:
- احصل على مفتاح مصادقة الإشعارات الفورية من Apple ل حساب المطوّر الخاص بك على Apple.
- فعِّل الإشعارات الفورية في XCode ضمن التطبيق > الإمكانات.
- سجِّل الدخول إلى Firebase باستخدام حسابك على Google.
إذا لم يكن لديك مشروع Xcode وأردت تجربة أحد منتجات Firebase، يمكنك تنزيل أحد عيّنات البدء السريع.
إنشاء مشروع على Firebase
قبل أن تتمكّن من إضافة Firebase إلى تطبيقك على Apple، عليك إنشاء مشروع على Firebase لربطه بتطبيقك. يُرجى الانتقال إلى مقالة فهم مشاريع Firebase لمعرفة مزيد من المعلومات عن مشاريع Firebase.
تسجيل تطبيقك في Firebase
لاستخدام Firebase في تطبيقك على أجهزة Apple، عليك تسجيل تطبيقك باستخدام مشروعك على Firebase. غالبًا ما يُشار إلى عملية تسجيل تطبيقك باسم "إضافة" تطبيقك إلى مشروعك.
انتقِل إلى وحدة تحكّم Firebase.
في وسط صفحة النظرة العامة على المشروع، انقر على رمز iOS+ لبدء سير عمل الإعداد.
إذا سبق لك إضافة تطبيق إلى مشروعك على Firebase، انقر على إضافة تطبيق لعرض خيارات المنصة.
أدخِل معرّف حزمة تطبيقك في حقل معرّف الحزمة.
(اختياري) أدخِل معلومات التطبيق الأخرى: الاسم المعرِّف للتطبيق ورقم تعريف التطبيق على App Store.
انقر على تسجيل التطبيق.
إضافة ملف إعدادات Firebase
انقر على تنزيل GoogleService-Info.plist للحصول على ملف إعدادات منصّات Apple في Firebase (
GoogleService-Info.plist
).انقل ملف الإعداد إلى جذر مشروع Xcode. إذا طُلب منك ذلك، اختَر إضافة ملف الإعدادات إلى جميع الاستهدافات.
إذا كان لديك أرقام تعريف حِزم متعددة في مشروعك، عليك ربط كل رقم تعريف
حزمة بتطبيق مسجَّل في وحدة تحكّم Firebase حتى يتمكّن كل تطبيق من استخدام
ملف GoogleService-Info.plist
الخاص به.
إضافة حِزم تطوير البرامج (SDK) لمنصّة Firebase إلى تطبيقك
استخدِم أداة Swift Package Manager لتثبيت تبعيات Firebase وإدارتها.
- في Xcode، مع فتح مشروع تطبيقك، انتقِل إلى ملف > إضافة حِزم.
- أضِف مستودع حزمة تطوير البرامج (SDK) لمنصّات Apple من Firebase عندما يُطلب منك ذلك:
- اختَر مكتبة Firebase Cloud Messaging.
- أضِف العلامة
-ObjC
إلى قسم رموز ربط أخرى في إعدادات الإنشاء الخاصة بالهدف. - للحصول على تجربة مثالية مع Firebase Cloud Messaging، ننصحك بتفعيل Google Analytics في مشروعك على Firebase وإضافة حزمة تطوير البرامج (SDK) لخدمة "إحصاءات Google لبرنامج Firebase" إلى تطبيقك. ويمكنك اختيار المكتبة بدون جمع معرّف جهاز IDFA أو مع جمع معرّف جهاز IDFA.
- عند الانتهاء، سيبدأ Xcode تلقائيًا في حلّ ملفاتك المضمّنة وتنزيلها في الخلفية.
https://github.com/firebase/firebase-ios-sdk.git
تحميل مفتاح مصادقة APNs
حمِّل مفتاح مصادقة APNs إلى Firebase. إذا لم يكن لديك مفتاح مصادقة APNs، احرص على إنشاء مفتاح في Apple Developer Member Center.
-
داخل مشروعك في وحدة تحكّم Firebase، انقر على رمز الترس، ثم على إعدادات المشروع، ثم على علامة التبويب الرسائل عبر السحابة الإلكترونية.
-
في مفتاح مصادقة APNs ضمن إعدادات تطبيق iOS، انقر على الزر تحميل.
-
انتقِل إلى المكان الذي حفظت فيه مفتاحك، واختَره، ثم انقر على فتح. أضِف معرّف المفتاح (متاحًا في Apple Developer Member Center) وانقر على تحميل.
إعداد Firebase في تطبيقك
عليك إضافة رمز إعداد Firebase إلى تطبيقك. استورِد وحدة Firebase وضبط مثيل مشترَك كما هو موضّح:
- استورِد وحدة
FirebaseCore
فيUIApplicationDelegate
، بالإضافة إلى أي وحدات Firebase أخرى يستخدمها مفوّض تطبيقك. على سبيل المثال، لاستخدام Cloud Firestore وAuthentication:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- يمكنك ضبط مثيل مشترَك لملف
FirebaseApp
في طريقةapplication(_:didFinishLaunchingWithOptions:)
لمفوّض التطبيق باتّباع الخطوات التالية:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// 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
كما هو موضّح:
Swift
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
Objective-C
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
الوصول إلى الرمز المميّز للتسجيل
لإرسال رسالة إلى جهاز معيّن، عليك معرفة رمز تسجيل هذا الجهاز. بما أنّك ستحتاج إلى إدخال الرمز المميّز في حقل في أداة إنشاء الإشعارات لإكمال هذا الدليل التعليمي، احرص على نسخ الرمز المميّز أو تخزينه بأمان بعد استرجاعه.
تنشئ حزمة تطوير البرامج (SDK) لنظام التشغيل FCM تلقائيًا رمزًا مميّزًا لتسجيل مثيل تطبيق العميل عند تشغيل التطبيق. على غرار رمز تنشيط الجهاز في APNs، يتيح لك هذا الرمز إرسال إشعارات مستهدفة إلى أي مثيل معيّن من تطبيقك.
بالطريقة نفسها التي توفّر بها منصات Apple عادةً رمزًا مميزًا لجهاز APNs عند بدء تشغيل التطبيق، توفّر FIRMessagingDelegate
رمزًا مميزًا للتسجيل من خلال messaging:didReceiveRegistrationToken:
.
تسترجع حزمة تطوير البرامج (SDK) لميزة "المراسلة عبر السحابة الإلكترونية من Firebase" رمزًا مميّزًا جديدًا أو حاليًا أثناء التشغيل الأولي للتطبيق،
وكلما تم تعديل الرمز المميّز أو إبطاله.
في جميع الحالات، تستدعي حزمة تطوير البرامج (SDK) لنظام "إرسال الرسائل الفورية من Google" messaging:didReceiveRegistrationToken:
باستخدام رمز مميّز صالح.
قد يتغيّر الرمز المميّز للتسجيل في الحالات التالية:
- استعادة التطبيق على جهاز جديد
- إلغاء تثبيت التطبيق أو إعادة تثبيته
- يُمحِّي المستخدم بيانات التطبيق.
ضبط حساب المفوّض للمراسلة
لتلقّي الرموز المميّزة للتسجيل، نفِّذ بروتوكول مفوّض المراسلة
واضبط سمة delegate
في FIRMessaging
بعد الاتصال
[FIRApp configure]
.
على سبيل المثال، إذا كان مفوّض تطبيقك متوافقًا مع بروتوكول مفوّض المراسلة
، يمكنك ضبط المفوّض على application:didFinishLaunchingWithOptions:
على نفسه.
Swift
Messaging.messaging().delegate = self
Objective-C
[FIRMessaging messaging].delegate = self;
جلب الرمز المميّز الحالي للتسجيل
يتم إرسال رموز التسجيل من خلال الطريقة
messaging:didReceiveRegistrationToken:
. يتم استدعاء هذه الطريقة بشكل عام مرة واحدة عند
بدء تشغيل التطبيق باستخدام الرمز المميّز للتسجيل. عند استدعاء هذه الطريقة، يكون الوقت مثاليًا لإجراء ما يلي:
- إذا كان الرمز المميّز للتسجيل جديدًا، أرسِله إلى خادم التطبيقات.
- اشترِك في رمز التسجيل المميّز في المواضيع. لا يُطلب ذلك إلّا في حالة الاشتراكات الجديدة أو الحالات التي أعاد فيها المستخدم تثبيت التطبيق.
يمكنك استرداد الرمز المميّز مباشرةً باستخدام token(completion:). يتم تقديم خطأ غير صفري إذا تعذّر استرداد الرمز المميّز بأي شكل من الأشكال.
Swift
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)" } }
Objective-C
[[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; } }];
يمكنك استخدام هذه الطريقة في أي وقت للوصول إلى الرمز المميّز بدلاً من تخزينه.
مراقبة إعادة تحميل الرمز المميّز
لتلقّي إشعارات عند تعديل الرمز المميّز، قدِّم مفوّضًا متوافقًا مع بروتوكول مفوّض المراسلة. يسجِّل المثال التالي الوكيل ويضيف طريقة الوكيل المناسبة:
Swift
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. }
Objective-C
- (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
named
kFIRMessagingRegistrationTokenRefreshNotification
بدلاً من تقديم طريقة وكيل. تحتوي سمة الرمز المميّز دائمًا على
قيمة الرمز المميّز الحالية.
إرسال رسالة إشعار
ثبِّت التطبيق وشغِّله على الجهاز المستهدَف. على أجهزة Apple، عليك قبول طلب الإذن لتلقّي إشعارات عن بُعد.
تأكَّد من أنّ التطبيق قيد التشغيل في الخلفية على الجهاز.
في وحدة تحكّم Firebase، افتح صفحة "الرسائل".
إذا كانت هذه هي رسالتك الأولى، اختَر إنشاء حملتك الأولى.
- اختَر رسائل إشعارات Firebase ثمّ إنشاء.
بخلاف ذلك، في علامة التبويب الحملات، اختَر حملة جديدة ثم الإشعارات.
أدخِل نص الرسالة. وجميع الحقول الأخرى اختيارية.
اختَر إرسال رسالة اختبارية من اللوحة اليمنى.
في الحقل إضافة رمز مميّز لتسجيل خدمة إدارة الموافقة (FCM)، أدخِل رمز تسجيل الذي حصلت عليه في قسم سابق من هذا الدليل.
انقر على اختبار.
بعد اختيار اختبار، من المفترض أن يتلقّى جهاز العميل المستهدَف (الذي يعمل التطبيق عليه في الخلفية) الإشعار.
للحصول على إحصاءات عن إرسال الرسائل إلى تطبيقك، اطّلِع على FCMلوحة بيانات إعداد التقارير التي تسجِّل عدد الرسائل المُرسَلة والمُفتحة على أجهزة Apple وAndroid، بالإضافة إلى بيانات "مرّات الظهور" (الإشعارات التي يراها المستخدمون) لتطبيقات Android.
الخطوات التالية
للاستفادة من ميزات أكثر من رسائل الإشعارات وإضافة سلوك آخر أكثر تقدمًا إلى تطبيقك، يُرجى الاطّلاع على: