এই কুইকস্টার্টটি বর্ণনা করে কিভাবে আপনার মোবাইল এবং ওয়েব ক্লায়েন্ট অ্যাপগুলিতে Firebase Cloud Messaging সেট আপ করবেন যাতে আপনি নির্ভরযোগ্যভাবে বার্তা পাঠাতে পারেন। সার্ভার পরিবেশের জন্য, আপনার সার্ভার পরিবেশ এবং FCM দেখুন।
Set up a Firebase Cloud Messaging client app on Apple platforms
For Apple client apps, you can receive notification and data payloads up to 4096 bytes over the Firebase Cloud Messaging APNs interface.
To write your client code in Objective-C or Swift, we recommend that you use the FIRMessaging API . The quickstart example provides sample code for both languages.
Before you get started, add Firebase to your Apple project .
Method swizzling in Firebase Cloud Messaging
The FCM SDK performs method swizzling in two key areas: mapping your APNs token to the FCM registration token and capturing analytics data during downstream message callback handling . Developers who prefer not to use swizzling can disable it by adding the flag FirebaseAppDelegateProxyEnabled
in the app's Info.plist file and setting it to NO (boolean value). Relevant areas of the guides provide code examples, both with and without method swizzling enabled.
Upload your APNs authentication key
আপনার APN প্রমাণীকরণ কী Firebase-এ আপলোড করুন। যদি আপনার কাছে ইতিমধ্যেই একটি APN প্রমাণীকরণ কী না থাকে, তাহলে Apple Developer Member Center- এ একটি তৈরি করতে ভুলবেন না।
Firebase কনসোলে আপনার প্রোজেক্টের ভিতরে, গিয়ার আইকনটি নির্বাচন করুন, প্রোজেক্ট সেটিংস নির্বাচন করুন এবং তারপর ক্লাউড মেসেজিং ট্যাবটি নির্বাচন করুন।
iOS অ্যাপ কনফিগারেশনের অধীনে APNs প্রমাণীকরণ কী- তে, আপনার ডেভেলপমেন্ট প্রমাণীকরণ কী, অথবা প্রোডাকশন প্রমাণীকরণ কী, অথবা উভয়ই আপলোড করতে আপলোড বোতামে ক্লিক করুন। কমপক্ষে একটি প্রয়োজন।
আপনার কী যেখানে সংরক্ষণ করেছেন সেই স্থানে ব্রাউজ করুন, এটি নির্বাচন করুন এবং খুলুন ক্লিক করুন। কীটির জন্য কী আইডি যোগ করুন ( অ্যাপল ডেভেলপার সদস্য কেন্দ্রে উপলব্ধ) এবং আপলোড ক্লিক করুন।
দূরবর্তী বিজ্ঞপ্তির জন্য নিবন্ধন করুন
হয় স্টার্টআপে, অথবা আপনার অ্যাপ্লিকেশন প্রবাহের কাঙ্ক্ষিত সময়ে, দূরবর্তী বিজ্ঞপ্তির জন্য আপনার অ্যাপটি নিবন্ধন করুন। দেখানো হিসাবে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 অ্যাপ লঞ্চের সময় ক্লায়েন্ট অ্যাপ ইনস্ট্যান্সের জন্য একটি নিবন্ধন টোকেন তৈরি করে। APN ডিভাইস টোকেনের মতো, এই টোকেনটি আপনাকে আপনার অ্যাপের যেকোনো নির্দিষ্ট ইনস্ট্যান্সে লক্ষ্যবস্তু বিজ্ঞপ্তি পাঠাতে দেয়।
অ্যাপল প্ল্যাটফর্মগুলি সাধারণত অ্যাপ শুরু করার সময় একটি APN ডিভাইস টোকেন সরবরাহ করে, ঠিক একইভাবে FCM FIRMessagingDelegate
এর messaging:didReceiveRegistrationToken:
পদ্ধতির মাধ্যমে একটি নিবন্ধন টোকেন সরবরাহ করে। FCM SDK প্রাথমিক অ্যাপ লঞ্চের সময় এবং যখনই টোকেনটি আপডেট বা অবৈধ করা হয় তখন একটি নতুন বা বিদ্যমান টোকেন পুনরুদ্ধার করে। সমস্ত ক্ষেত্রে, FCM SDK একটি বৈধ টোকেন সহ messaging:didReceiveRegistrationToken:
কল করে।
রেজিস্ট্রেশন টোকেন পরিবর্তন হতে পারে যখন:
- অ্যাপটি একটি নতুন ডিভাইসে পুনরুদ্ধার করা হয়েছে
- ব্যবহারকারী অ্যাপটি আনইনস্টল/পুনরায় ইনস্টল করেন
- ব্যবহারকারী অ্যাপ ডেটা সাফ করে।
মেসেজিং ডেলিগেট সেট করুন
রেজিস্ট্রেশন টোকেন পেতে, মেসেজিং ডেলিগেট প্রোটোকলটি বাস্তবায়ন করুন এবং [FIRApp configure]
কল করার পরে FIRMessaging
এর delegate
প্রোপার্টি সেট করুন। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশন ডেলিগেট মেসেজিং ডেলিগেট প্রোটোকলের সাথে সঙ্গতিপূর্ণ হয়, তাহলে আপনি 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. }
বিকল্পভাবে, আপনি একটি ডেলিগেট পদ্ধতি সরবরাহ করার পরিবর্তে kFIRMessagingRegistrationTokenRefreshNotification
নামে একটি NSNotification
শুনতে পারেন। টোকেন প্রোপার্টিতে সর্বদা বর্তমান টোকেন মান থাকে।
Swizzling disabled: mapping your APNs token and registration token
If you have disabled method swizzling, or you are building a SwiftUI app, you'll need to explicitly map your APNs token to the FCM registration token. Implement the application(_:didRegisterForRemoteNotificationsWithDeviceToken:)
method to retrieve the APNs token, and then set Messaging
's apnsToken
property:
সুইফট
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { Messaging.messaging().apnsToken = deviceToken }
অবজেক্টিভ-সি
// With "FirebaseAppDelegateProxyEnabled": NO - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [FIRMessaging messaging].APNSToken = deviceToken; }
After the FCM registration token is generated, you can access it and listen for refresh events using the same methods as with swizzling enabled.
Prevent auto initialization
When an FCM registration token is generated, the library uploads the identifier and configuration data to Firebase. If you want to get an explicit opt-in from users first, you can prevent token generation at configure time by disabling FCM. To do this, add a metadata value to your Info.plist
(not your GoogleService-Info.plist
):
FirebaseMessagingAutoInitEnabled = NO
To re-enable FCM, you can make a runtime call:
সুইফট
Messaging.messaging().autoInitEnabled = true
অবজেক্টিভ-সি
[FIRMessaging messaging].autoInitEnabled = YES;
This value persists across app restarts once set.
Set up the notification service extension
To send notifications that include images to Apple devices, you must add a notification service extension. This extension allows devices to display images delivered in the notification payload. If you don't plan to send images in notifications, you can skip this step.
To add a service extension, perform the required setup tasks for modifying and presenting notifications in APNs, and then add the FCM extension helper API in NotificationService.m
. Specifically, instead of completing the callback with self.contentHandler(self.bestAttemptContent);
, complete it with FIRMessaging extensionHelper
as shown:
@interface NotificationService () <NSURLSessionDelegate>
@property(nonatomic) void (^contentHandler)(UNNotificationContent *contentToDeliver);
@property(nonatomic) UNMutableNotificationContent *bestAttemptContent;
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
self.contentHandler = contentHandler;
self.bestAttemptContent = [request.content mutableCopy];
// Modify the notification content here as you want
self.bestAttemptContent.title = [NSString stringWithFormat:@"%@ [modified]",
self.bestAttemptContent.title];
// Call FIRMessaging extension helper API.
[[FIRMessaging extensionHelper] populateNotificationContent:self.bestAttemptContent
withContentHandler:contentHandler];
}
...
একটি বিজ্ঞপ্তি বার্তা পাঠান
- Install and run the app on the target device. On Apple devices, accept the request for permission to receive remote notifications.
- Check that the app is in the background on the device.
- In the Firebase console, open the Messaging page.
- যদি এটি আপনার প্রথম বার্তা হয়, তাহলে আপনার প্রথম প্রচারণা তৈরি করুন নির্বাচন করুন।
- Firebase Notification messages নির্বাচন করুন এবং Create নির্বাচন করুন।
- অন্যথায়, প্রচারণা ট্যাবে, নতুন প্রচারণা এবং তারপর বিজ্ঞপ্তি নির্বাচন করুন।
- Enter the message text.
- ডান ফলক থেকে পরীক্ষামূলক বার্তা পাঠান নির্বাচন করুন।
- In the field labeled Add an FCM registration token , enter your registration token.
- পরীক্ষা নির্বাচন করুন।
After you select Test , the targeted client device, with the app in the background, should receive the notification.
For insight into message delivery to your app, see the FCM reporting dashboard , which records the number of messages sent and opened on Apple and Android devices.
পরবর্তী পদক্ষেপ
After you have completed the setup steps, here are a few options for moving forward with FCM for Apple platforms: