১. ভূমিকা
সর্বশেষ হালনাগাদ: ২০২০-১-৬
ফায়ারবেস ক্লাউড মেসেজিং (FCM) হলো একটি ক্রস-প্ল্যাটফর্ম মেসেজিং সমাধান, যার মাধ্যমে আপনি কোনো খরচ ছাড়াই নির্ভরযোগ্যভাবে বার্তা পাঠাতে পারেন।
FCM ব্যবহার করে, আপনি একটি ক্লায়েন্ট অ্যাপকে জানাতে পারেন যে সিঙ্ক করার জন্য নতুন ইমেল বা অন্যান্য ডেটা উপলব্ধ হয়েছে। ব্যবহারকারীদের পুনরায় সম্পৃক্ত করতে এবং ধরে রাখতে আপনি নোটিফিকেশন মেসেজ পাঠাতে পারেন। ইনস্ট্যান্ট মেসেজিং-এর মতো ব্যবহারের ক্ষেত্রে, একটি মেসেজ ক্লায়েন্ট অ্যাপে ৪ কিলোবাইট পর্যন্ত পেলোড স্থানান্তর করতে পারে।
এটা কীভাবে কাজ করে?
একটি এফসিএম বাস্তবায়নে প্রেরণ এবং গ্রহণের জন্য দুটি প্রধান উপাদান অন্তর্ভুক্ত থাকে:
- একটি বিশ্বস্ত পরিবেশ, যেমন ক্লাউড ফাংশনস ফর ফায়ারবেস অথবা একটি অ্যাপ সার্ভার, যেখানে মেসেজ তৈরি, টার্গেট এবং পাঠানো যায়।
- একটি iOS, Android, বা ওয়েব (জাভাস্ক্রিপ্ট) ক্লায়েন্ট অ্যাপ যা সংশ্লিষ্ট প্ল্যাটফর্ম-নির্দিষ্ট ট্রান্সপোর্ট সার্ভিসের মাধ্যমে বার্তা গ্রহণ করে।
এফসিএম স্থাপত্যের সংক্ষিপ্ত বিবরণ

FCM বার্তা তৈরি, পরিবহন এবং গ্রহণ করার জন্য নিম্নলিখিত উপাদানগুলোর ওপর নির্ভর করে:
- মেসেজ রিকোয়েস্ট তৈরি বা বিল্ড করার টুল। নোটিফিকেশন কম্পোজার নোটিফিকেশন রিকোয়েস্ট তৈরির জন্য একটি GUI-ভিত্তিক বিকল্প প্রদান করে। সম্পূর্ণ অটোমেশন এবং সব ধরনের মেসেজের সাপোর্টের জন্য, আপনাকে অবশ্যই একটি বিশ্বস্ত সার্ভার পরিবেশে মেসেজ রিকোয়েস্ট বিল্ড করতে হবে, যা Firebase Admin SDK অথবা FCM সার্ভার প্রোটোকল সাপোর্ট করে। এই পরিবেশটি হতে পারে Cloud Functions for Firebase, Google App Engine, অথবা আপনার নিজস্ব অ্যাপ সার্ভার।
- এফসিএম ব্যাকএন্ড, যা (অন্যান্য কাজের পাশাপাশি) মেসেজ রিকোয়েস্ট গ্রহণ করে, টপিকের মাধ্যমে মেসেজের ফ্যানআউট সম্পাদন করে এবং মেসেজ আইডি-র মতো মেসেজ মেটাডেটা তৈরি করে।
- একটি প্ল্যাটফর্ম-স্তরের ট্রান্সপোর্ট লেয়ার, যা বার্তাটিকে নির্দিষ্ট ডিভাইসে প্রেরণ করে, বার্তা বিতরণ পরিচালনা করে এবং প্রয়োজন অনুযায়ী প্ল্যাটফর্ম-নির্দিষ্ট কনফিগারেশন প্রয়োগ করে। এই ট্রান্সপোর্ট লেয়ারে অন্তর্ভুক্ত রয়েছে:
- গুগল প্লে পরিষেবা সহ অ্যান্ড্রয়েড ডিভাইসগুলির জন্য অ্যান্ড্রয়েড ট্রান্সপোর্ট লেয়ার (ATL)
- iOS ডিভাইসের জন্য অ্যাপল পুশ নোটিফিকেশন পরিষেবা (APNs)
- ওয়েব অ্যাপের জন্য ওয়েব পুশ প্রোটোকল
- ব্যবহারকারীর ডিভাইসে থাকা FCM SDK-তে, অ্যাপের ফোরগ্রাউন্ড/ব্যাকগ্রাউন্ড অবস্থা এবং প্রাসঙ্গিক অ্যাপ্লিকেশন লজিক অনুযায়ী নোটিফিকেশন প্রদর্শিত হয় বা বার্তাটি পরিচালিত হয়।
আপনি যা তৈরি করবেন
এই কোডল্যাবে, আপনি FCM ব্যবহার করে একটি নমুনা iOS অ্যাপে পুশ নোটিফিকেশন যোগ করবেন।
আপনি যা শিখবেন
- পুশ মেসেজিংয়ের জন্য একজন ব্যবহারকারীকে কীভাবে সাবস্ক্রাইব এবং আনসাবস্ক্রাইব করবেন
- আগত পুশ মেসেজগুলি কীভাবে পরিচালনা করবেন
- কীভাবে একটি বিজ্ঞপ্তি প্রদর্শন করবেন
- নোটিফিকেশন ক্লিকের প্রতিক্রিয়া কীভাবে জানাবেন
আপনার যা যা লাগবে
- এক্সকোড ১১.০ বা তার পরবর্তী সংস্করণ
- CocoaPods 1.9.0 বা তার পরবর্তী সংস্করণ
- অ্যাপল ডেভেলপার অ্যাকাউন্ট
- আপনার অ্যাপ চালানোর জন্য একটি ভৌত iOS ডিভাইস
- সুইফট সম্পর্কে প্রাথমিক জ্ঞান
২. প্রস্তুতি গ্রহণ
নমুনা কোড ডাউনলোড করুন
এই কোডল্যাবে আপনি আপনার নিজস্ব টেস্ট অ্যাপ তৈরি করবেন, কিন্তু যদি আপনি বিদ্যমান স্যাম্পল অ্যাপটি দেখতে ও চালাতে চান, তাহলে কুইকস্টার্ট স্যাম্পল কোডটি ডাউনলোড করতে পারেন।
নমুনাটি পাওয়ার দুটি উপায় আছে:
- গিট রিপোজিটরি ক্লোন করুন:
$ git clone https://github.com/firebase/quickstart-ios.git
- জিপ ফাইলটি ডাউনলোড করুন:
আপনি যদি সোর্সটি একটি ZIP ফাইল হিসেবে ডাউনলোড করেন, তবে সেটি আনপ্যাক করলে quickstart-ios নামের একটি রুট ফোল্ডার পাবেন।
একটি নতুন অ্যাপ তৈরি করুন
নিচের ধাপগুলো অনুসরণ করে আপনার নিজের টেস্ট অ্যাপ তৈরি করুন (নিচের ধাপগুলো XCode 12.3-এর জন্য):
- XCode খুলুন এবং 'Create a new Xcode project' নির্বাচন করুন।
- অ্যাপটি নির্বাচন করুন এবং পরবর্তী বাটনে ক্লিক করুন।

- পণ্যের নাম লিখুন (যেমন: MessagingExample)
- টিম নির্বাচন করুন (যদি আপনি টিম তৈরি না করে থাকেন, তবে অ্যাপল ডেভেলপার অ্যাকাউন্টে এটি কনফিগার করুন)।
- প্রতিষ্ঠানের শনাক্তকারী তথ্য দিন (যেমন,
com.your-name) - ইনপুট বান্ডেল আইডেন্টিফায়ার (যেমন,
com.your-name.MessagingExampleএটি সকল iOS অ্যাপের মধ্যে অনন্য হতে হবে)। - ইন্টারফেস পুলডাউন থেকে স্টোরিবোর্ড নির্বাচন করুন।
- লাইফ সাইকেল পুলডাউন থেকে UIKit অ্যাপ ডেলিগেট নির্বাচন করুন।
- ভাষা হিসেবে সুইফট নির্বাচন করুন।
- পরবর্তী ধাপে যান।

APN কী তৈরি করার সময় এবং আপনার Firebase প্রজেক্টে অ্যাপটি রেজিস্টার করার সময় বান্ডেল আইডেন্টিফায়ারটির প্রয়োজন হবে।
৩. এপিএন কনফিগার করা
প্রমাণীকরণ কী তৈরি করুন
এই অংশে পুশ নোটিফিকেশনের জন্য সক্রিয় করা একটি অ্যাপ আইডির জন্য কীভাবে অথেনটিকেশন কী তৈরি করতে হয়, তা বর্ণনা করা হয়েছে। আপনার কাছে আগে থেকে কোনো কী থাকলে, নতুন করে তৈরি করার পরিবর্তে আপনি সেটিই ব্যবহার করতে পারেন।
একটি প্রমাণীকরণ কী তৈরি করতে:
- আপনার ডেভেলপার অ্যাকাউন্টে, Certificates, Identifiers & Profiles- এ যান এবং Keys- এ নেভিগেট করুন।

- উপরের ডান কোণায় থাকা অ্যাড বাটনে (+) ক্লিক করুন।

- APNs অথোরাইজেশন কী-এর জন্য একটি বিবরণ লিখুন।
- Key Services-এর অধীনে, APNs চেকবক্সটি নির্বাচন করুন এবং Continue-তে ক্লিক করুন।

- রেজিস্টার-এ ক্লিক করুন এবং তারপর ডাউনলোড করুন । আপনার কী-টি একটি নিরাপদ স্থানে সংরক্ষণ করুন। এটি একবারই ডাউনলোড করতে হবে এবং পরবর্তীতে কী-টি পুনরুদ্ধার করা যাবে না।

একটি অ্যাপ আইডি তৈরি করুন
অ্যাপ আইডি হলো এমন একটি শনাক্তকারী যা একটি অ্যাপকে অনন্যভাবে চিহ্নিত করে। প্রচলিত রীতি অনুযায়ী, এটিকে একটি বিপরীত ডোমেইন দ্বারা প্রকাশ করা হয়।
- অ্যাপল ডেভেলপার মেম্বার সেন্টারে যান এবং সাইন ইন করুন।
- সার্টিফিকেট, আইডেন্টিফায়ার এবং প্রোফাইল- এ যান।
- আইডেন্টিফায়ার্স -এ যান।
- নতুন অ্যাপ আইডি তৈরি করতে + বোতামে ক্লিক করুন।

- অ্যাপ আইডি রেডিও বাটনটি নির্বাচন করুন এবং চালিয়ে যান-এ ক্লিক করুন।

- অ্যাপ নির্বাচন করুন এবং চালিয়ে যান-এ ক্লিক করুন।

- নতুন অ্যাপ আইডি তৈরি করতে:
- আপনার অ্যাপ আইডির জন্য একটি নাম দিন।
- একটি টিম আইডি দিন। এই মানটি অবশ্যই মেম্বারশিপ ট্যাবে থাকা টিম আইডির সাথে মিলতে হবে।
- অ্যাপ আইডি সাফিক্স বিভাগে, এক্সপ্লিসিট অ্যাপ আইডি নির্বাচন করুন, তারপর আপনার বান্ডেল আইডি ইনপুট করুন।

- অ্যাপ সার্ভিসেস সেকশনে, পুশ নোটিফিকেশনস অপশনটি চেক করা আছে কিনা তা নিশ্চিত করুন।

- চালিয়ে যান-এ ক্লিক করুন এবং আপনার দেওয়া তথ্য সঠিক কিনা তা যাচাই করুন:
- আইডেন্টিফায়ারের মান অবশ্যই টিম আইডি এবং বান্ডেল আইডির সংযুক্তির সাথে মিলতে হবে।
- পুশ নোটিফিকেশন কনফিগারযোগ্য হওয়া উচিত
- অ্যাপ আইডি তৈরি করতে রেজিস্টার-এ ক্লিক করুন।
প্রোফাইল তৈরি করুন
উন্নয়নাধীন অবস্থায় আপনার অ্যাপটি পরীক্ষা করার জন্য, আপনার একটি ডেভেলপমেন্ট প্রোফাইল প্রয়োজন, যা অ্যাপ স্টোরে এখনও প্রকাশিত হয়নি এমন অ্যাপ চালানোর জন্য আপনার ডিভাইসগুলোকে অনুমোদন দেবে।
- অ্যাপল ডেভেলপার মেম্বার সেন্টারে যান এবং সাইন ইন করুন।
- সার্টিফিকেট, আইডেন্টিফায়ার এবং প্রোফাইল- এ যান।
- উপরের বাম কোণার ড্রপ-ডাউন মেনু থেকে iOS, tvOS, watchOS নির্বাচন করুন, যদি তা আগে থেকে নির্বাচিত না থাকে, তারপর Profiles- এ যান।
- নতুন প্রোফাইল তৈরি করতে + বোতামে ক্লিক করুন।

- প্রভিশনিং প্রোফাইল টাইপ হিসেবে iOS অ্যাপ ডেভেলপমেন্ট নির্বাচন করুন, তারপর কন্টিনিউ-তে ক্লিক করুন।

- ড্রপ ডাউন মেনু থেকে আপনার পছন্দের অ্যাপ আইডিটি বেছে নিন, তারপর 'চালিয়ে যান'-এ ক্লিক করুন।
- পূর্ববর্তী ধাপে আপনার বেছে নেওয়া অ্যাপ আইডিটির আইওএস ডেভেলপমেন্ট সার্টিফিকেটটি নির্বাচন করুন, তারপর 'চালিয়ে যান' (Continue ) বোতামে ক্লিক করুন।
- প্রভিশনিং প্রোফাইলে যে iOS ডিভাইসগুলো অন্তর্ভুক্ত করতে চান, সেগুলো নির্বাচন করুন, তারপর 'Continue ' ক্লিক করুন। আপনার পরীক্ষার জন্য ব্যবহার করতে চান এমন সমস্ত ডিভাইস নির্বাচন করা নিশ্চিত করুন।
- এই প্রোভিজনিং প্রোফাইলটির জন্য একটি নাম দিন (যেমন MessagingExampleProfile ), তারপর Generate-এ ক্লিক করুন।

- আপনার ম্যাক-এ প্রোভিজনিং প্রোফাইলটি সংরক্ষণ করতে ডাউনলোড-এ ক্লিক করুন।

- ইনস্টল করতে প্রভিশনিং প্রোফাইল ফাইলটিতে ডাবল-ক্লিক করুন।
৪. আপনার iOS প্রজেক্টে Firebase যোগ করা
একটি ফায়ারবেস প্রজেক্ট তৈরি করুন
আপনার iOS অ্যাপে Firebase যোগ করার আগে, অ্যাপটির সাথে সংযোগ স্থাপনের জন্য একটি Firebase প্রজেক্ট তৈরি করতে হবে। Firebase প্রজেক্ট সম্পর্কে আরও জানতে “Understand Firebase Projects” অংশটি দেখুন।
- Firebase কনসোলে, 'Add project'- এ ক্লিক করুন, তারপর একটি 'Project name' নির্বাচন করুন বা লিখুন।

আপনার যদি আগে থেকেই কোনো গুগল ক্লাউড প্ল্যাটফর্ম (GCP) প্রজেক্ট থাকে, তাহলে আপনি ড্রপডাউন মেনু থেকে প্রজেক্টটি নির্বাচন করে সেটিতে ফায়ারবেস রিসোর্স যোগ করতে পারেন।
- (ঐচ্ছিক) আপনি যদি একটি নতুন প্রজেক্ট তৈরি করেন, তাহলে প্রজেক্ট আইডি সম্পাদনা করতে পারেন।
ফায়ারবেস স্বয়ংক্রিয়ভাবে আপনার ফায়ারবেস প্রজেক্টে একটি অনন্য আইডি বরাদ্দ করে। ফায়ারবেস কীভাবে প্রজেক্ট আইডি ব্যবহার করে সে সম্পর্কে জানতে ‘আন্ডারস্ট্যান্ড ফায়ারবেস প্রজেক্টস’ দেখুন।
- চালিয়ে যান-এ ক্লিক করুন।
- আপনার প্রোজেক্টের জন্য গুগল অ্যানালিটিক্স সেট আপ করুন, যা আপনাকে নিম্নলিখিত যেকোনো ফায়ারবেস প্রোডাক্ট ব্যবহার করে সর্বোত্তম অভিজ্ঞতা পেতে সক্ষম করবে:
- ফায়ারবেস ক্র্যাশলিটিক্স
- ফায়ারবেস পূর্বাভাস
- ফায়ারবেস ক্লাউড মেসেজিং
- ফায়ারবেস ইন-অ্যাপ মেসেজিং
- ফায়ারবেস রিমোট কনফিগারেশন
- ফায়ারবেস এ/বি টেস্টিং
নির্দেশনা দেওয়া হলে, বিদ্যমান গুগল অ্যানালিটিক্স অ্যাকাউন্ট ব্যবহার করতে অথবা একটি নতুন অ্যাকাউন্ট তৈরি করতে নির্বাচন করুন। আপনি যদি একটি নতুন অ্যাকাউন্ট তৈরি করতে চান, তাহলে আপনার অ্যানালিটিক্স রিপোর্টিংয়ের অবস্থান নির্বাচন করুন, তারপর আপনার প্রোজেক্টের জন্য ডেটা শেয়ারিং সেটিংস এবং গুগল অ্যানালিটিক্সের শর্তাবলী মেনে নিন।


- Create project-এ ক্লিক করুন (অথবা Add Firebase-এ ক্লিক করুন, যদি আপনি আগে থেকে কোনো GCP প্রজেক্ট ব্যবহার করে থাকেন)।
ফায়ারবেস স্বয়ংক্রিয়ভাবে আপনার ফায়ারবেস প্রোজেক্টের জন্য রিসোর্স সরবরাহ করে। প্রক্রিয়াটি সম্পন্ন হলে, আপনাকে ফায়ারবেস কনসোলে আপনার ফায়ারবেস প্রোজেক্টের ওভারভিউ পৃষ্ঠায় নিয়ে যাওয়া হবে।
আপনার অ্যাপটি ফায়ারবেসে নিবন্ধন করুন
আপনার একটি Firebase প্রজেক্ট তৈরি হয়ে গেলে, আপনি তাতে আপনার iOS অ্যাপটি যোগ করতে পারবেন।
একটি Firebase প্রজেক্টে অ্যাপ যোগ করার সেরা পদ্ধতি ও বিবেচ্য বিষয়গুলো সম্পর্কে আরও জানতে, যার মধ্যে একাধিক বিল্ড ভ্যারিয়েন্ট কীভাবে পরিচালনা করতে হয় তাও অন্তর্ভুক্ত, Understand Firebase Projects দেখুন।
- ফায়ারবেস কনসোলে যান।
- প্রজেক্ট ওভারভিউ পেজের মাঝখানে থাকা iOS আইকনটিতে ক্লিক করে সেটআপ ওয়ার্কফ্লোটি চালু করুন।
আপনি যদি আপনার Firebase প্রজেক্টে আগে থেকেই কোনো অ্যাপ যোগ করে থাকেন, তাহলে প্ল্যাটফর্ম অপশনগুলো দেখতে 'Add app'-এ ক্লিক করুন।

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

একটি ফায়ারবেস কনফিগারেশন ফাইল যোগ করুন
- আপনার Firebase iOS কনফিগারেশন ফাইল (
GoogleService-Info.plist) পেতে Download GoogleService-Info.plist -এ ক্লিক করুন।
- আপনার কনফিগারেশন ফাইলটি আপনার Xcode প্রোজেক্টের রুটে সরান। যদি অনুরোধ করা হয়, তাহলে কনফিগারেশন ফাইলটি সমস্ত টার্গেটে যোগ করার জন্য নির্বাচন করুন।

আপনার প্রোজেক্টে একাধিক বান্ডেল আইডি থাকলে, আপনাকে অবশ্যই ফায়ারবেস কনসোলে প্রতিটি বান্ডেল আইডিকে একটি নিবন্ধিত অ্যাপের সাথে যুক্ত করতে হবে, যাতে প্রতিটি অ্যাপের নিজস্ব GoogleService-Info.plist ফাইল থাকতে পারে।
XCode বন্ধ করুন।
আপনার অ্যাপে ফায়ারবেস এসডিকে যোগ করুন
ফায়ারবেস লাইব্রেরিগুলো ইনস্টল করার জন্য আমরা CocoaPods ব্যবহার করার পরামর্শ দিই। তবে, আপনি যদি CocoaPods ব্যবহার করতে না চান, তাহলে সরাসরি SDK ফ্রেমওয়ার্কগুলো ইন্টিগ্রেট করতে পারেন অথবা Swift Package Manager বিটা ব্যবহার করতে পারেন।
- আপনার যদি আগে থেকে Podfile না থাকে, তবে একটি তৈরি করুন। আপনি যদি কুইকস্টার্ট স্যাম্পলটি ব্যবহার করেন, তবে Xcode প্রজেক্ট এবং Podfile (পড সহ) আগে থেকেই উপস্থিত থাকবে।
$ cd MessagingExample $ pod init
- আপনার Podfile-এ সেই Firebase পডগুলো যোগ করুন যেগুলো আপনি আপনার অ্যাপে ব্যবহার করতে চান।
আপনি আপনার iOS অ্যাপে যেকোনো সমর্থিত Firebase প্রোডাক্ট যোগ করতে পারেন।
কুইকস্টার্ট স্যাম্পলটিতে গুগল অ্যানালিটিক্স এবং ফায়ারবেস ক্লাউড মেসেজিং এসডিকে যোগ করা হয়েছে।
# Add the Firebase pod for Google Analytics pod 'Firebase/Analytics' # Add the pod for Firebase Cloud Messaging pod 'Firebase/Messaging'
- পডগুলো ইনস্টল করুন, তারপর এক্সকোডে প্রজেক্টটি দেখতে আপনার
.xcworkspaceফাইলটি খুলুন:
$ pod install
-
MessagingExample.xcworkspaceখুলুন এবং Firebase কনসোলে Next-এ ক্লিক করুন।
আপনার অ্যাপে Firebase চালু করুন
আপনাকে আপনার অ্যাপ্লিকেশনে ফায়ারবেস ইনিশিয়ালাইজেশন কোড যোগ করতে হবে।
ফায়ারবেস মডিউলটি ইম্পোর্ট করুন এবং একটি শেয়ার্ড ইনস্ট্যান্স কনফিগার করুন (কুইকস্টার্ট স্যাম্পলটিতে ফায়ারবেস মডিউলটি আগে থেকেই ইম্পোর্ট করা আছে)।
- আপনার
UIApplicationDelegateএ Firebase মডিউলটি ইম্পোর্ট করুন:
AppDelegate.swift
import UIKit
import Firebase // Add this line
- একটি FirebaseApp শেয়ার্ড ইনস্ট্যান্স কনফিগার করুন, সাধারণত আপনার অ্যাপের
application:didFinishLaunchingWithOptions:মেথডে:
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure() // Add this line
return true
}
- Firebase কনসোলে Next-এ ক্লিক করুন।

- আপনার অ্যাপে Firebase SDK যোগ করা হয়েছে। কনসোলে যেতে 'Continue' ক্লিক করুন।

৫. এফসিএম ক্লায়েন্ট কনফিগার করা
আপনার APNs প্রমাণীকরণ কী আপলোড করুন
আপনার APNs অথেন্টিকেশন কী Firebase-এ আপলোড করুন।
- আপনার প্রোজেক্টের ভিতরে ফায়ারবেস কনসোলে, গিয়ার আইকনটি নির্বাচন করুন, প্রোজেক্ট সেটিংস নির্বাচন করুন এবং তারপরে ক্লাউড মেসেজিং ট্যাবটি নির্বাচন করুন।

- Apple অ্যাপ কনফিগারেশনের অধীনে APNs অথেন্টিকেশন কী- তে, আপনার ডেভেলপমেন্ট অথেন্টিকেশন কী, অথবা প্রোডাকশন অথেন্টিকেশন কী, অথবা উভয়ই আপলোড করতে আপলোড বোতামে ক্লিক করুন। এর মধ্যে অন্তত একটি থাকা আবশ্যক।

- যেখানে আপনি আপনার কী (key) সংরক্ষণ করেছেন সেই অবস্থানে যান, সেটি নির্বাচন করুন এবং 'Open'-এ ক্লিক করুন। কী-টির জন্য কী আইডি (key ID) যোগ করুন (এটি Apple Developer Member Center-এর Certificates, Identifiers & Profiles- এ পাওয়া যাবে) এবং 'Upload'-এ ক্লিক করুন।

দূরবর্তী বিজ্ঞপ্তির জন্য নিবন্ধন করুন
অ্যাপ চালু করার সময় অথবা আপনার অ্যাপ্লিকেশন ফ্লো-এর কাঙ্ক্ষিত পর্যায়ে, রিমোট নোটিফিকেশনের জন্য আপনার অ্যাপটি রেজিস্টার করুন।
কুইকস্টার্ট স্যাম্পলটিতে registerForRemoteNotifications আগে থেকেই যোগ করা আছে।
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
// [START register for remote notifications]
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()
// [END register for remote notifications]
return true
}
AppDelegate.swift ফাইলের শেষে এই লাইনগুলো যোগ করে UNUserNotificationCenter এর ডেলিগেট প্রপার্টি নির্ধারণ করুন।
AppDelegate.swift
@available(iOS 10, *)
extension AppDelegate : UNUserNotificationCenterDelegate {
// Receive displayed notifications for iOS 10 devices.
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
let userInfo = notification.request.content.userInfo
// Print full message.
print(userInfo)
// Change this to your preferred presentation option
completionHandler([[.alert, .sound]])
}
func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
let userInfo = response.notification.request.content.userInfo
// Print full message.
print(userInfo)
completionHandler()
}
}
মেসেজিং প্রতিনিধি সেট করুন
রেজিস্ট্রেশন টোকেন গ্রহণ করার জন্য, মেসেজিং ডেলিগেট প্রোটোকল প্রয়োগ করুন এবং [FIRApp configure] কল করার পর FIRMessaging এর delegate প্রপার্টি সেট করুন। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশন ডেলিগেট মেসেজিং ডেলিগেট প্রোটোকল মেনে চলে, তাহলে আপনি application:didFinishLaunchingWithOptions: এ ডেলিগেটটিকে এর নিজের মান হিসেবে সেট করতে পারেন (কুইকস্টার্ট স্যাম্পলে এটি ইতিমধ্যেই সেট করা আছে)।
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
Messaging.messaging().delegate = self // Add this line
// [START register for remote notifications]
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()
// [END register for remote notifications]
return true
}
AppDelegate.swift ফাইলের শেষে এই লাইনগুলো যোগ করে FIRMessaging এর ডেলিগেট প্রপার্টি নির্ধারণ করুন।
AppDelegate.swift
extension AppDelegate : MessagingDelegate {
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)
}
}
ক্ষমতা যোগ করুন
আপনি 'Create an App ID' বিভাগে পুশ নোটিফিকেশন সুবিধাটি যোগ করেছেন, কিন্তু আপনাকে নিচের ধাপগুলো অনুসরণ করে XCode-এও এই সুবিধাটি যোগ করতে হবে (নিচের ধাপগুলো XCode 12.3-এর জন্য):
- নেভিগেটর এরিয়াতে প্রজেক্টের নামে ক্লিক করুন।
- স্বাক্ষর ও সক্ষমতা- তে ক্লিক করুন।
- ক্লিক + সক্ষমতা ।

- ব্যাকগ্রাউন্ড মোডগুলিতে ডাবল-ক্লিক করুন।
- আবার + Capability-তে ক্লিক করুন।
- ডাবল-ক্লিক পুশ নোটিফিকেশন ।
- ব্যাকগ্রাউন্ড মোড বিভাগে রিমোট নোটিফিকেশনগুলো দেখুন।

৬. একটি বিজ্ঞপ্তি বার্তা পাঠান
আপনি নিম্নলিখিত ধাপগুলো অনুসরণ করে একটি পরীক্ষামূলক বার্তা পাঠাতে পারেন:
- টার্গেট ডিভাইসে অ্যাপটি ইনস্টল করে চালান। রিমোট নোটিফিকেশন পাওয়ার জন্য আপনাকে অনুমতির অনুরোধটি গ্রহণ করতে হবে।
- XCode লগ থেকে রেজিস্ট্রেশন টোকেনটি সংগ্রহ করুন।

- নিশ্চিত করুন যে অ্যাপটি ডিভাইসে ব্যাকগ্রাউন্ডে চালু আছে।
- নোটিফিকেশন কম্পোজারটি খুলুন এবং নতুন নোটিফিকেশন নির্বাচন করুন।
- বার্তার লেখাটি লিখুন।

- পরীক্ষামূলক বার্তা পাঠান নির্বাচন করুন।
- ‘Add an FCM registration token’ লেবেলযুক্ত ফিল্ডে, ধাপ ২-এ প্রাপ্ত রেজিস্ট্রেশন টোকেনটি প্রবেশ করান।
- টেস্ট-এ ক্লিক করুন।
আপনি ‘টেস্ট’ ক্লিক করার পর, নির্দিষ্ট ক্লায়েন্ট ডিভাইসটির (যেটিতে অ্যাপটি ব্যাকগ্রাউন্ডে চালু আছে) নোটিফিকেশন সেন্টারে একটি নোটিফিকেশন চলে আসবে।
আপনার অ্যাপে বার্তা ডেলিভারি সম্পর্কে বিস্তারিত জানতে, এফসিএম রিপোর্টিং ড্যাশবোর্ডটি দেখুন, যেখানে আইওএস এবং অ্যান্ড্রয়েড ডিভাইসে পাঠানো ও খোলা বার্তার সংখ্যা রেকর্ড করা থাকে।

৭. অভিনন্দন
অভিনন্দন, আপনি সফলভাবে একটি পরীক্ষামূলক বার্তা পাঠিয়েছেন!
FCM-এ টপিক সাবস্ক্রিপশনের মতো আরও অনেক ফাংশন ও কনফিগারেশন রয়েছে।
আপনি যদি এ বিষয়ে আগ্রহী হন, তাহলে অফিসিয়াল ডেভেলপার ডকুমেন্টটি দেখে নিতে পারেন।
এরপর কী?
এই কোডল্যাবগুলো দেখে নিন।