Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

আইওএস এ ফায়ারবেস ক্লাউড মেসেজিং ক্লায়েন্ট অ্যাপ সেট আপ করুন

IOS ক্লায়েন্ট অ্যাপের জন্য, আপনি Firebase ক্লাউড মেসেজিং APNs ইন্টারফেসের মাধ্যমে 4000 বাইট পর্যন্ত বিজ্ঞপ্তি এবং ডেটা পেলোড পেতে পারেন।

উদ্দেশ্য সি বা সুইফট আপনার ক্লায়েন্ট কোড লিখতে করার জন্য, আমরা সুপারিশ করছি যে আপনি ব্যবহার করতে FIRMessaging এপিআইদ্রুতশুরু উদাহরণ উভয় ভাষার জন্য নমুনা কোড প্রদান করে।

APN- এর মাধ্যমে পুশ বিজ্ঞপ্তি পাঠাতে সক্ষম করতে, আপনার প্রয়োজন:

  • আপনার অ্যাপল ডেভেলপার অ্যাকাউন্টের জন্য একটি অ্যাপল পুশ বিজ্ঞপ্তি প্রমাণীকরণ কী। ফায়ারবেস ক্লাউড মেসেজিং অ্যাপ আইডি দ্বারা চিহ্নিত অ্যাপ্লিকেশনে পুশ বিজ্ঞপ্তি পাঠাতে এই টোকেন ব্যবহার করে।

  • সঙ্গে যে অ্যাপ আইডি জন্য একটি প্রভিশনিং প্রফাইল পুশ বিজ্ঞপ্তি সক্রিয় । এছাড়াও, ডেভেলপমেন্টের সময় আপনার অ্যাপটি পরীক্ষা করার জন্য, ডেভেলপমেন্টের জন্য আপনার একটি প্রোভিশনিং প্রোফাইল প্রয়োজন যা আপনার ডিভাইসগুলিকে এমন অ্যাপ চালানোর অনুমতি দেয় যা অ্যাপ স্টোরে এখনো প্রকাশিত হয়নি।

আপনি উভয় তৈরি অ্যাপল ডেভেলপার সদস্য সেন্টার

ফায়ারবেস ক্লাউড মেসেজিং -এ সুইজলিং পদ্ধতি

FCM SDK এর দু 'টি মূল এলাকায় সঞ্চালিত পদ্ধতি swizzling: টোকেন আপনার APN গুলি ম্যাপিং টোকেন FCM নিবন্ধন প্রয়োজন এবং সময় Analytics ডেটা ক্যাপচার স্রোতবরাবর বার্তা কলব্যাক হ্যান্ডলিং । সকল বিকাশকারীরা ব্যবহার swizzling পছন্দ না করেন পতাকা যোগ করে এটি নিষ্ক্রিয় করতে পারেন FirebaseAppDelegateProxyEnabled অ্যাপ্লিকেশনের Info.plist ফাইলে এবং না (বুলিয়ান মান) থেকে এটি সেটিং। গাইডের প্রাসঙ্গিক ক্ষেত্রগুলি কোড উদাহরণ প্রদান করে, উভয় পদ্ধতি ছাড়া এবং ছাড়াও সুইজলিং সক্ষম।

আপনার iOS প্রকল্পে Firebase যোগ করুন

আপনি যদি ইতিমধ্যে আপনার অ্যাপের জন্য অন্যান্য ফায়ারবেস বৈশিষ্ট্যগুলি সক্ষম করে থাকেন তবে এই বিভাগটি আপনি সম্পন্ন করতে পারেন এমন কাজগুলি অন্তর্ভুক্ত করে। FCM বিশেষভাবে জন্য, আপনি করতে হবে আপনার APN গুলি প্রমাণীকরণ কী আপলোড এবং দূরবর্তী নোটিফিকেশন জন্য রেজিস্টার

পূর্বশর্ত

  • নিম্নলিখিত ইনস্টল করুন:

    • এক্সকোড 12.2 বা তার পরে
    • কোকোপডস 1.10.0 বা তার পরে
  • নিশ্চিত করুন যে আপনার প্রকল্প এই প্রয়োজনীয়তা পূরণ করে:

    • আপনার প্রকল্পটি অবশ্যই আইওএস 10 বা তার পরে টার্গেট করবে।
  • আপনার অ্যাপ্লিকেশন চালানোর জন্য একটি শারীরিক iOS ডিভাইস সেট করুন, এবং এই কাজগুলো সম্পূর্ণ করুন:

    • আপনার জন্য একটি আপেল পুশ নোটিফিকেশন প্রমাণীকরণ কী সংগ্রহ অ্যাপল বিকাশকারী অ্যাকাউন্ট
    • অ্যাপ অধীনে উপর XCode পুশ বিজ্ঞপ্তি সক্ষম করুন> কেপেবিলিটিস।

আপনার কি ইতিমধ্যে একটি Xcode প্রকল্প না থাকলে এবং শুধুমাত্র একটি Firebase পণ্য ব্যবহার করে দেখতে চান, আপনি আমাদের এক বিনামূল্যে ডাউনলোড করতে পারেন দ্রুতশুরু নমুনা

একটি Firebase প্রকল্প তৈরি করুন

আপনার iOS অ্যাপে Firebase যোগ করার আগে, আপনার iOS অ্যাপের সাথে সংযোগ স্থাপনের জন্য আপনাকে একটি Firebase প্রকল্প তৈরি করতে হবে। পরিদর্শন বুঝুন Firebase প্রকল্প Firebase প্রকল্পগুলি সম্পর্কে আরও জানতে।

ফায়ারবেসে আপনার অ্যাপ নিবন্ধন করুন

আপনার একটি Firebase প্রকল্প থাকার পর, আপনি এতে আপনার iOS অ্যাপ যোগ করতে পারেন।

পরিদর্শন বুঝুন Firebase প্রকল্প একটি Firebase প্রকল্পে অ্যাপ্লিকেশান যোগ করে, কীভাবে একাধিক বিল্ড রূপগুলো হ্যান্ডেল করতে সহ সর্বোত্তম কার্যাভ্যাস এবং বিবেচনার সম্পর্কে আরো জানতে।

  1. যান Firebase কনসোল

  2. প্রকল্পের ওভারভিউ পৃষ্ঠার কেন্দ্রে, আইওএস আইকন (ক্লিক সেটআপ কর্মপ্রবাহ আরম্ভ করার জন্য)।

    আপনি ইতিমধ্যেই আপনার Firebase প্রকল্পে একটি অ্যাপ্লিকেশন যোগ করে থাকেন, প্ল্যাটফর্ম অপশন প্রদর্শন করে অ্যাপ্লিকেশান যোগ ক্লিক করুন।

  3. আইডি ক্ষেত্র বান্ডিল আইওএস আপনার অ্যাপ্লিকেশনের বান্ডিল আইডি লিখুন।

  4. অ্যাপ ডাক নাম এবং App স্টোর বা দোকান আইডি: (ঐচ্ছিক) অন্যান্য অ্যাপ্লিকেশনে তথ্য লিখুন।

  5. নিবন্ধন অ্যাপ্লিকেশন ক্লিক করুন।

একটি Firebase কনফিগারেশন ফাইল যোগ করুন

  1. আপনার Firebase আইওএস কনফিগ ফাইল (প্রাপ্ত ডাউনলোড GoogleService-Info.plist ক্লিক করুন GoogleService-Info.plist )।

  2. আপনার কনফিগ ফাইলটি আপনার এক্সকোড প্রকল্পের মূলের মধ্যে সরান। যদি অনুরোধ করা হয়, কনফিগ ফাইল সব টার্গেটে যোগ করতে নির্বাচন করুন।

আপনি আপনার প্রকল্পের একাধিক বান্ডল ID- র থাকে, তাহলে আপনি Firebase কনসোল প্রতিটি অ্যাপের নিজস্ব থাকতে পারে, ফলে যে নিবন্ধিত অ্যাপ্লিকেশন দিয়ে প্রতিটি বান্ডেলের আইডি সংশ্লিষ্ট করতে হবে GoogleService-Info.plist ফাইল।

আপনার অ্যাপে Firebase SDK যোগ করুন

আমরা ব্যবহার করার প্রস্তাব CocoaPods Firebase লাইব্রেরীগুলো ইনস্টল করতে। যাইহোক, যদি আপনি বরং CocoaPods ব্যবহার করবেন চাই, আপনি পারেন SDK এর অবকাঠামো সরাসরি সংহত বা ব্যবহার সুইফট প্যাকেজ ম্যানেজার পরিবর্তে।

তোমাদের মধ্যে একজন ব্যবহার করছেন দ্রুতশুরু নমুনা ? Xcode প্রকল্প এবং Podfile (pods সঙ্গে) ইতিমধ্যে উপস্থিত, কিন্তু আপনি এখনও করতে হবে আপনার Firebase কনফিগারেশন ফাইল যোগ pods এবং ইনস্টল করুন।

  1. যদি আপনার ইতিমধ্যে একটি না থাকে তবে একটি পডফিল তৈরি করুন:

    cd your-project-directory
    pod init
  2. আপনার পডফাইলে, ফায়ারবেস পডগুলি যোগ করুন যা আপনি আপনার অ্যাপে ব্যবহার করতে চান।

    তোমাদের কেউ যোগ করতে পারেন সমর্থিত Firebase পণ্য আপনার iOS অ্যাপ্লিকেশন।

    Firebase ক্লাউড মেসেজিং সঙ্গে একটি অনুকূল অভিজ্ঞতার জন্য, আমরা প্রস্তাব Google এনালিটিক্স সক্রিয় আপনার প্রকল্পের মধ্যে। এছাড়াও, অ্যানালিটিক্স সেট আপ করার অংশ হিসাবে, আপনাকে আপনার অ্যাপে অ্যানালিটিক্সের জন্য Firebase SDK যোগ করতে হবে।

    অ্যানালিটিক্স সক্ষম

    # Add the Firebase pod for Google Analytics
    pod 'Firebase/Analytics'
    
    # For Analytics without IDFA collection capability, use this pod instead
    # pod ‘Firebase/AnalyticsWithoutAdIdSupport’
    
    # Add the pod for Firebase Cloud Messaging
    pod 'Firebase/Messaging'

    IDFA, ডিভাইস লেভেল বিজ্ঞাপন সনাক্তকারী অ্যাপলের সম্পর্কে আরো জানুন ব্যবহারকারীর গোপনীয়তা এবং ডেটা ব্যবহার এবং অ্যাপ্লিকেশন ট্র্যাকিং ট্রান্সপারেন্সি ডকুমেন্টেশন।

    অ্যানালিটিক্স সক্ষম করা হয়নি

    # Add the pod for Firebase Cloud Messaging
    pod 'Firebase/Messaging'
  3. Pods ইনস্টল করুন, তারপর আপনার খুলতে .xcworkspace Xcode প্রকল্প দেখতে ফাইল:

    pod install
    open your-project.xcworkspace

আপনার APNs প্রমাণীকরণ কী আপলোড করুন

আপনার APNs প্রমাণীকরণ কী Firebase এ আপলোড করুন। আপনার কি ইতিমধ্যে একটি APN গুলি প্রমাণীকরণ কী না পারে, তবে একটি তৈরি করতে ভুলবেন না অ্যাপল ডেভেলপার সদস্য সেন্টার

  1. Firebase কনসোলে আপনার প্রকল্পের ভিতরে,, গিয়ার আইকন নির্বাচন প্রকল্প সেটিং নির্বাচন করুন, এবং তারপর ক্লাউড মেসেজিং ট্যাব নির্বাচন করুন।

  2. IOS অ্যাপ্লিকেশন কনফিগারেশন অধীনে APN গুলি প্রমাণীকরণ কী সালে আপলোড বাটন ক্লিক করুন।

  3. যেখানে আপনি আপনার কী সংরক্ষিত ব্রাউজ করুন, এটা নির্বাচন করুন, এবং ওপেন এ ক্লিক করুন। কী (উপলব্ধ জন্য কী আইডি যোগ করুন অ্যাপল ডেভেলপার সদস্য সেন্টার ) এবং আপলোড এ ক্লিক করুন।

আপনার অ্যাপে Firebase চালু করুন

আপনার অ্যাপ্লিকেশনে আপনাকে Firebase প্রারম্ভিক কোড যোগ করতে হবে। ফায়ারবেস মডিউল আমদানি করুন এবং দেখানো হিসাবে একটি ভাগ করা উদাহরণ কনফিগার করুন:

  1. আপনার Firebase মডিউল আমদানি UIApplicationDelegate :

    সুইফট

    import Firebase

    উদ্দেশ্য গ

    @import Firebase;
  2. কনফিগার একটি FirebaseApp , উদাহরণস্বরূপ ভাগ সাধারণত আপনার অ্যাপ্লিকেশনের মধ্যে application:didFinishLaunchingWithOptions: পদ্ধতি:

    সুইফট

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    উদ্দেশ্য গ

    // Use Firebase library to configure APIs
    [FIRApp configure];

দূরবর্তী বিজ্ঞপ্তিগুলির জন্য নিবন্ধন করুন

হয় প্রারম্ভে, অথবা আপনার আবেদন প্রবাহের পছন্দসই সময়ে, দূরবর্তী বিজ্ঞপ্তিগুলির জন্য আপনার অ্যাপটি নিবন্ধন করুন। ফোন করুন registerForRemoteNotifications দেখানো হয়েছে:

সুইফট

if #available(iOS 10.0, *) {
  // For iOS 10 display notification (sent via APNS)
  UNUserNotificationCenter.current().delegate = self

  let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
  UNUserNotificationCenter.current().requestAuthorization(
    options: authOptions,
    completionHandler: { _, _ in }
  )
} else {
  let settings: UIUserNotificationSettings =
    UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
  application.registerUserNotificationSettings(settings)
}

application.registerForRemoteNotifications()

উদ্দেশ্য গ

if ([UNUserNotificationCenter class] != nil) {
  // iOS 10 or later
  // For iOS 10 display notification (sent via APNS)
  [UNUserNotificationCenter currentNotificationCenter].delegate = self;
  UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
      UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
  [[UNUserNotificationCenter currentNotificationCenter]
      requestAuthorizationWithOptions:authOptions
      completionHandler:^(BOOL granted, NSError * _Nullable error) {
        // ...
      }];
} else {
  // iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
  UIUserNotificationType allNotificationTypes =
  (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
  UIUserNotificationSettings *settings =
  [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
  [application registerUserNotificationSettings:settings];
}

[application registerForRemoteNotifications];

নিবন্ধন টোকেন অ্যাক্সেস করুন

ডিফল্টরূপে, FCM SDK অ্যাপ লঞ্চে ক্লায়েন্ট অ্যাপের উদাহরণের জন্য একটি রেজিস্ট্রেশন টোকেন তৈরি করে। APNs ডিভাইস টোকেনের অনুরূপ, এই টোকেনটি আপনাকে আপনার অ্যাপের কোনো বিশেষ দৃষ্টান্তে লক্ষ্যবস্তু বিজ্ঞপ্তি পাঠাতে দেয়।

একই ভাবে আইওএস সাধারণত একটি APN গুলি ডিভাইস অ্যাপ্লিকেশান শুরু টোকেনটি বিতরণ সালে FCM একটি নিবন্ধন মাধ্যমে টোকেনটি উপলব্ধ FIRMessagingDelegate এর messaging:didReceiveRegistrationToken: পদ্ধতি। FCM SDK প্রাথমিক অ্যাপ লঞ্চের সময় একটি নতুন বা বিদ্যমান টোকেন পুনরুদ্ধার করে এবং যখনই টোকেন আপডেট বা অবৈধ হয়। সব ক্ষেত্রে, FCM SDK এর কল messaging:didReceiveRegistrationToken: একটি বৈধ টোকেন সঙ্গে।

নিবন্ধন টোকেন পরিবর্তন হতে পারে যখন:

  • অ্যাপটি একটি নতুন ডিভাইসে পুনরুদ্ধার করা হয়েছে
  • ব্যবহারকারী অ্যাপটি আনইনস্টল/পুনরায় ইনস্টল করে
  • ব্যবহারকারী অ্যাপ ডেটা সাফ করে।

মেসেজিং ডেলিগেট সেট করুন

নিবন্ধন টোকেন পেতে, মেসেজিং প্রতিনিধি প্রোটোকল এবং সেট বাস্তবায়ন FIRMessaging এর delegate কলিং পর সম্পত্তি [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 একটি প্রতিনিধি পদ্ধতি সরবরাহের বদলে। টোকেন সম্পত্তির সর্বদা বর্তমান টোকেন মান থাকে।

সুইজলিং অক্ষম: আপনার APNs টোকেন এবং রেজিস্ট্রেশন টোকেন ম্যাপিং

যদি আপনি সুইজলিং পদ্ধতি অক্ষম করে থাকেন, তাহলে আপনাকে স্পষ্টভাবে আপনার APNs টোকেনটি FCM রেজিস্ট্রেশন টোকেনে ম্যাপ করতে হবে। পদ্ধতি ওভাররাইড didRegisterForRemoteNotificationsWithDeviceToken পুনরুদ্ধার করতে APN গুলি টোকেন এবং তারপর সেট FIRMessaging এর APNSToken সম্পত্তি:

সুইফট

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;
}

FCM রেজিস্ট্রেশন টোকেন তৈরি হওয়ার পরে, আপনি এটি অ্যাক্সেস করতে পারেন এবং সুইজলিং সক্ষম করার মতো একই পদ্ধতি ব্যবহার করে রিফ্রেশ ইভেন্টগুলি শুনতে পারেন।

স্বয়ংক্রিয় আরম্ভ প্রতিরোধ করুন

যখন একটি FCM নিবন্ধন টোকেন উৎপন্ন হয়, লাইব্রেরি শনাক্তকারী এবং কনফিগারেশন ডেটা ফায়ারবেসে আপলোড করে। আপনি যদি প্রথমে ব্যবহারকারীদের কাছ থেকে একটি স্পষ্ট অপ্ট-ইন পেতে চান, তাহলে আপনি FCM নিষ্ক্রিয় করে কনফিগার করার সময় টোকেন প্রজন্ম প্রতিরোধ করতে পারেন। এটি করার জন্য, আপনার জন্য একটি মেটাডেটা মান যোগ Info.plist (আপনার না GoogleService-Info.plist ):

FirebaseMessagingAutoInitEnabled = NO

FCM পুনরায় সক্ষম করতে, আপনি একটি রানটাইম কল করতে পারেন:

সুইফট

Messaging.messaging().autoInitEnabled = true

উদ্দেশ্য গ

[FIRMessaging messaging].autoInitEnabled = YES;

এই মানটি একবার সেট হয়ে গেলে অ্যাপ রিস্টার্টের মধ্যে থেকে যায়।

পরবর্তী পদক্ষেপ

আপনার আইওএস ক্লায়েন্ট সেট আপ করার পরে, আপনি আপনার অ্যাপে মেসেজ হ্যান্ডলিং এবং অন্যান্য, আরো উন্নত আচরণ যোগ করতে প্রস্তুত। আরও তথ্যের জন্য এই গাইডগুলি দেখুন: