برای شروع کار با FCM ، سادهترین مورد استفاده را بسازید: ارسال یک پیام اعلان آزمایشی از سازنده Notifications به یک دستگاه توسعهدهنده زمانی که برنامه در پسزمینه دستگاه است. در این صفحه تمام مراحل برای رسیدن به این هدف، از راهاندازی تا تأیید، فهرست میشود - اگر یک برنامه مشتری Apple برای FCM راهاندازی کرده باشید، ممکن است مراحلی را که قبلاً انجام دادهاید پوشش دهد.
Firebase را به پروژه اپل خود اضافه کنید
اگر قبلاً سایر ویژگی های Firebase را برای برنامه خود فعال کرده باشید، این بخش وظایفی را که ممکن است انجام داده باشید را پوشش می دهد. مخصوصاً برای FCM ، باید کلید احراز هویت APN خود را آپلود کنید و برای اعلان های راه دور ثبت نام کنید .
پیش نیازها
موارد زیر را نصب کنید:
- Xcode 15.2 یا بالاتر
اطمینان حاصل کنید که پروژه شما این شرایط را برآورده می کند:
- پروژه شما باید این نسخه های پلتفرم یا جدیدتر را هدف قرار دهد:
- iOS 13
- macOS 10.15
- tvOS 13
- watchOS 7
- پروژه شما باید این نسخه های پلتفرم یا جدیدتر را هدف قرار دهد:
یک دستگاه اپل فیزیکی را برای اجرای برنامه خود تنظیم کنید و این کارها را کامل کنید:
- یک کلید تأیید اعتبار Apple Push Notification برای حساب Apple Developer خود دریافت کنید.
- Push Notifications را در XCode در قسمت App > Capabilities فعال کنید.
- با استفاده از حساب Google خود وارد Firebase شوید .
اگر قبلاً پروژه Xcode ندارید و فقط میخواهید یک محصول Firebase را امتحان کنید، میتوانید یکی از نمونههای شروع سریع ما را دانلود کنید.
یک پروژه Firebase ایجاد کنید
قبل از اینکه بتوانید Firebase را به برنامه Apple خود اضافه کنید، باید یک پروژه Firebase برای اتصال به برنامه خود ایجاد کنید. برای کسب اطلاعات بیشتر در مورد پروژه های Firebase، از Understand Firebase Projects دیدن کنید.
برنامه خود را با Firebase ثبت کنید
برای استفاده از Firebase در برنامه Apple خود، باید برنامه خود را در پروژه Firebase خود ثبت کنید. ثبت برنامه شما اغلب "افزودن" برنامه شما به پروژه شما نامیده می شود.
به کنسول Firebase بروید.
در مرکز صفحه نمای کلی پروژه، روی نماد iOS+ کلیک کنید تا گردش کار راه اندازی شود.
اگر قبلاً برنامهای را به پروژه Firebase خود اضافه کردهاید، روی افزودن برنامه کلیک کنید تا گزینههای پلتفرم نمایش داده شوند.
شناسه بسته نرم افزاری خود را در قسمت شناسه بسته وارد کنید.
شناسه بسته نرم افزاری به طور منحصر به فرد یک برنامه را در اکوسیستم اپل شناسایی می کند.
شناسه بسته خود را پیدا کنید: پروژه خود را در Xcode باز کنید، برنامه سطح بالا را در ناوبر پروژه انتخاب کنید، سپس برگه General را انتخاب کنید.
مقدار فیلد Bundle Identifier، شناسه بسته است (به عنوان مثال،
com.yourcompany.yourproject
).توجه داشته باشید که مقدار ID بسته به حروف کوچک و بزرگ حساس است و نمیتوان آن را برای این برنامه Firebase پس از ثبت در پروژه Firebase تغییر داد.
(اختیاری) اطلاعات دیگر برنامه را وارد کنید: نام مستعار برنامه و شناسه فروشگاه App .
نام مستعار برنامه : یک شناسه داخلی و راحت که فقط برای شما در کنسول Firebase قابل مشاهده است
شناسه فروشگاه App : توسط Firebase Dynamic Links برای هدایت کاربران به صفحه App Store شما و توسط Google Analytics برای وارد کردن رویدادهای تبدیل به Google Ads استفاده میشود. اگر برنامه شما هنوز شناسه فروشگاه App ندارد، میتوانید شناسه را بعداً در تنظیمات پروژه خود اضافه کنید.
روی ثبت برنامه کلیک کنید.
یک فایل پیکربندی Firebase اضافه کنید
برای دریافت فایل پیکربندی پلتفرم های اپل Firebase (
GoogleService-Info.plist
) روی Download GoogleService-Info.plist کلیک کنید.فایل پیکربندی Firebase حاوی شناسههای منحصر به فرد، اما غیر مخفی برای پروژه شما است. برای کسب اطلاعات بیشتر در مورد این فایل پیکربندی، از Understand Firebase Projects دیدن کنید.
میتوانید فایل پیکربندی Firebase خود را دوباره در هر زمانی دانلود کنید.
مطمئن شوید که نام فایل پیکربندی با کاراکترهای اضافی مانند
(2)
اضافه نشده باشد.
فایل پیکربندی خود را به ریشه پروژه Xcode خود منتقل کنید. اگر از شما خواسته شد، انتخاب کنید تا فایل پیکربندی را به همه اهداف اضافه کنید.
اگر چندین شناسه بسته در پروژه خود دارید، باید هر ID بسته را با یک برنامه ثبت شده در کنسول Firebase مرتبط کنید تا هر برنامه بتواند فایل GoogleService-Info.plist
خود را داشته باشد.
SDK های Firebase را به برنامه خود اضافه کنید
برای نصب و مدیریت وابستگی های Firebase از Swift Package Manager استفاده کنید.
- در Xcode، با باز بودن پروژه برنامه، به File > Add Packages بروید.
- هنگامی که از شما خواسته شد، مخزن SDK پلتفرم های Apple Firebase را اضافه کنید:
- کتابخانه Firebase Cloud Messaging را انتخاب کنید.
- پرچم
-ObjC
را به بخش Other Linker Flags تنظیمات ساخت هدف خود اضافه کنید. - برای تجربه بهینه با Firebase Cloud Messaging ، توصیه میکنیم Google Analytics در پروژه Firebase خود فعال کنید و Firebase SDK برای Google Analytics را به برنامه خود اضافه کنید. شما می توانید کتابخانه را بدون مجموعه IDFA یا با مجموعه IDFA انتخاب کنید.
- پس از اتمام، Xcode به طور خودکار شروع به حل و دانلود وابستگی های شما در پس زمینه می کند.
https://github.com/firebase/firebase-ios-sdk.git
کلید احراز هویت APN خود را آپلود کنید
کلید احراز هویت APN خود را در Firebase آپلود کنید. اگر از قبل یک کلید تأیید اعتبار APN ندارید، مطمئن شوید که در مرکز اعضای برنامهنویس Apple ایجاد کردهاید.
در داخل پروژه خود در کنسول Firebase ، نماد چرخ دنده را انتخاب کنید، تنظیمات پروژه را انتخاب کنید و سپس برگه Cloud Messaging را انتخاب کنید.
در کلید احراز هویت APN در پیکربندی برنامه iOS ، روی دکمه آپلود کلیک کنید.
به مکانی که کلید خود را در آن ذخیره کرده اید بروید، آن را انتخاب کنید و روی Open کلیک کنید. شناسه کلید را برای کلید اضافه کنید (در مرکز اعضای برنامه نویس اپل موجود است) و روی آپلود کلیک کنید.
Firebase را در برنامه خود راه اندازی کنید
شما باید کد اولیه Firebase را به برنامه خود اضافه کنید. ماژول Firebase را وارد کنید و یک نمونه مشترک را مطابق شکل پیکربندی کنید:
- ماژول
FirebaseCore
را درUIApplicationDelegate
خود و همچنین هر ماژول Firebase دیگری که نماینده برنامه شما استفاده میکند، وارد کنید. به عنوان مثال، برای استفاده از Cloud Firestore و Authentication :SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
سویفت
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
هدف-C
@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()
هدف-C
// Use Firebase library to configure APIs [FIRApp configure];
- اگر از SwiftUI استفاده میکنید، باید یک نماینده برنامه ایجاد کنید و آن را از طریق
UIApplicationDelegateAdaptor
یاNSApplicationDelegateAdaptor
به ساختارApp
خود متصل کنید. همچنین باید swizzling نمایندگی برنامه را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعمل های 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()
هدف-C
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
به رمز ثبت نام دسترسی پیدا کنید
برای ارسال پیام به یک دستگاه خاص، باید رمز ثبت نام آن دستگاه را بدانید. از آنجایی که برای تکمیل این آموزش باید توکن را در قسمتی در Notifications composer وارد کنید، پس از بازیابی آن حتماً آن را کپی کنید یا به طور ایمن ذخیره کنید.
به طور پیش فرض، FCM SDK یک نشانه ثبت نام برای نمونه برنامه مشتری در راه اندازی برنامه ایجاد می کند. مشابه توکن دستگاه APN، این توکن به شما امکان می دهد اعلان های هدفمند را به هر نمونه خاصی از برنامه خود ارسال کنید.
همانطور که پلتفرمهای اپل معمولاً یک توکن دستگاه APN را در شروع برنامه ارائه میکنند، FCM یک نشانه ثبت نام را از طریق روش messaging:didReceiveRegistrationToken:
FIRMessagingDelegate
ارائه میکند. FCM SDK یک توکن جدید یا موجود را در طول راهاندازی اولیه برنامه و هر زمان که توکن بهروزرسانی یا باطل شود، بازیابی میکند. در همه موارد، FCM SDK messaging:didReceiveRegistrationToken:
با یک توکن معتبر فراخوانی میکند.
نشانه ثبت نام ممکن است زمانی تغییر کند که:
- برنامه در یک دستگاه جدید بازیابی می شود
- کاربر برنامه را حذف/نصب مجدد می کند
- کاربر داده های برنامه را پاک می کند.
نماینده پیام رسانی را تنظیم کنید
برای دریافت نشانههای ثبتنام، پروتکل ارسال پیام را پیادهسازی کنید و پس از فراخوانی [FIRApp configure]
ویژگی delegate
FIRMessaging
را تنظیم کنید. برای مثال، اگر نماینده برنامه شما با پروتکل نماینده پیامرسانی مطابقت دارد، میتوانید نماینده را روی application:didFinishLaunchingWithOptions:
روی خودش تنظیم کنید.
سویفت
Messaging.messaging().delegate = self
هدف-C
[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)" } }
هدف-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; } }];
شما می توانید در هر زمان از این روش برای دسترسی به توکن به جای ذخیره آن استفاده کنید.
مانیتور به روز رسانی نشانه
برای اینکه هر زمان که توکن به روز می شود مطلع شوید، یک نماینده مطابق با پروتکل نماینده پیام رسانی ارائه دهید. مثال زیر نماینده را ثبت می کند و متد نماینده مناسب را اضافه می کند:
سویفت
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. }
هدف-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
با نام kFIRMessagingRegistrationTokenRefreshNotification
گوش دهید. ویژگی token همیشه دارای مقدار رمز فعلی است.
پیام اعلان ارسال کنید
برنامه را روی دستگاه مورد نظر نصب و اجرا کنید. در دستگاههای اپل، باید درخواست مجوز برای دریافت اعلانهای از راه دور را بپذیرید.
مطمئن شوید که برنامه در پسزمینه دستگاه است.
در کنسول Firebase ، صفحه پیامرسانی را باز کنید.
اگر این اولین پیام شماست، ایجاد اولین کمپین خود را انتخاب کنید.
- پیامهای اعلان Firebase را انتخاب کنید و ایجاد را انتخاب کنید.
در غیر این صورت، در تب Campaigns ، کمپین جدید و سپس Notifications را انتخاب کنید.
متن پیام را وارد کنید تمام فیلدهای دیگر اختیاری هستند.
از قسمت سمت راست گزینه Send test message را انتخاب کنید.
در فیلد با عنوان افزودن نشانه ثبت FCM ، نشانه ثبت نامی را که در بخش قبلی این راهنما به دست آورده اید، وارد کنید.
تست را انتخاب کنید.
پس از انتخاب تست ، دستگاه مشتری مورد نظر (با برنامه در پسزمینه) باید اعلان را دریافت کند.
برای اطلاعات بیشتر در مورد تحویل پیام به برنامه خود، به داشبورد گزارش FCM مراجعه کنید، که تعداد پیامهای ارسال شده و باز شده در دستگاههای Apple و Android را به همراه دادههای «impressions» (اعلانهایی که کاربران مشاهده میکنند) را برای برنامههای Android ثبت میکند.
مراحل بعدی
برای فراتر رفتن از پیامهای اعلان و افزودن سایر رفتارهای پیشرفتهتر به برنامه خود، ببینید: