Flutter-এ একটি Firebase ক্লাউড মেসেজিং ক্লায়েন্ট অ্যাপ সেট আপ করুন

Flutter এ একটি FCM ক্লায়েন্ট সেট আপ করতে এই পদক্ষেপগুলি অনুসরণ করুন৷

প্ল্যাটফর্ম-নির্দিষ্ট সেটআপ এবং প্রয়োজনীয়তা

কিছু প্রয়োজনীয় পদক্ষেপ আপনি যে প্ল্যাটফর্মকে লক্ষ্য করছেন তার উপর নির্ভর করে।

iOS+

এক্সকোডে অ্যাপের ক্ষমতা সক্ষম করুন

আপনার অ্যাপ্লিকেশন বার্তাগুলি পেতে শুরু করার আগে, আপনাকে অবশ্যই আপনার Xcode প্রকল্পে পুশ বিজ্ঞপ্তি এবং পটভূমি মোডগুলি সক্ষম করতে হবে৷

  1. আপনার Xcode প্রজেক্ট ওয়ার্কস্পেস খুলুন ( ios/Runner.xcworkspace )।
  2. পুশ বিজ্ঞপ্তি সক্রিয় করুন .
  3. ব্যাকগ্রাউন্ড ফেচ এবং রিমোট নোটিফিকেশন ব্যাকগ্রাউন্ড এক্সিকিউশন মোড সক্ষম করুন।

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

আপনি FCM ব্যবহার করার আগে, Firebase-এ আপনার APN-এর শংসাপত্র আপলোড করুন। আপনার যদি ইতিমধ্যেই একটি APNs শংসাপত্র না থাকে, তাহলে Apple বিকাশকারী সদস্য কেন্দ্রে একটি তৈরি করুন৷

  1. Firebase কনসোলে আপনার প্রকল্পের ভিতরে, গিয়ার আইকন নির্বাচন করুন, প্রকল্প সেটিংস নির্বাচন করুন এবং তারপরে ক্লাউড মেসেজিং ট্যাবটি নির্বাচন করুন৷
  2. আপনার ডেভেলপমেন্ট সার্টিফিকেট, আপনার প্রোডাকশন সার্টিফিকেট বা উভয়ের জন্য আপলোড সার্টিফিকেট বোতামটি নির্বাচন করুন। অন্তত একটি প্রয়োজন.
  3. প্রতিটি শংসাপত্রের জন্য, .p12 ফাইলটি নির্বাচন করুন এবং পাসওয়ার্ড প্রদান করুন, যদি থাকে। নিশ্চিত করুন যে এই শংসাপত্রের বান্ডেল আইডি আপনার অ্যাপের বান্ডেল আইডির সাথে মেলে। সংরক্ষণ নির্বাচন করুন।

পদ্ধতি swizzling

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

অ্যান্ড্রয়েড

গুগল প্লে পরিষেবা

এফসিএম ক্লায়েন্টদের জন্য Android 4.4 বা উচ্চতর চলমান ডিভাইসগুলির প্রয়োজন যাতে Google Play পরিষেবাগুলি ইনস্টল করা থাকে, বা Google API-এর সাথে Android 4.4 চালিত একটি এমুলেটর। মনে রাখবেন যে আপনি Google Play Store-এর মাধ্যমে আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলি স্থাপনে সীমাবদ্ধ নন৷

যে অ্যাপগুলি প্লে পরিষেবা SDK-এর উপর নির্ভর করে তাদের সর্বদা Google Play পরিষেবার বৈশিষ্ট্যগুলি অ্যাক্সেস করার আগে একটি সামঞ্জস্যপূর্ণ Google Play পরিষেবা APK জন্য ডিভাইসটি পরীক্ষা করা উচিত। এটি দুটি জায়গায় করার পরামর্শ দেওয়া হয়: প্রধান কার্যকলাপের onCreate() পদ্ধতিতে এবং এর onResume() পদ্ধতিতে। onCreate() চেক ইন নিশ্চিত করে যে অ্যাপটি সফল চেক ছাড়া ব্যবহার করা যাবে না। onResume() চেক ইন নিশ্চিত করে যে ব্যবহারকারী যদি অন্য কোনো উপায়ে, যেমন ব্যাক বোতামের মাধ্যমে চলমান অ্যাপে ফিরে আসেন, তবে চেকটি এখনও সঞ্চালিত হয়।

যদি ডিভাইসটিতে Google Play পরিষেবাগুলির একটি সামঞ্জস্যপূর্ণ সংস্করণ না থাকে, তাহলে আপনার অ্যাপ GoogleApiAvailability.makeGooglePlayServicesAvailable() কল করতে পারে যাতে ব্যবহারকারীরা Play Store থেকে Google Play পরিষেবাগুলি ডাউনলোড করতে পারেন৷

ওয়েব

FCM দিয়ে ওয়েব শংসাপত্র কনফিগার করুন

এফসিএম ওয়েব ইন্টারফেস সমর্থিত ওয়েব পুশ পরিষেবাগুলিতে অনুরোধ পাঠানোর অনুমোদনের জন্য "স্বেচ্ছাসেবী অ্যাপ্লিকেশন সার্ভার আইডেন্টিফিকেশন" বা "VAPID" কী নামক ওয়েব শংসাপত্র ব্যবহার করে। বিজ্ঞপ্তিগুলি পুশ করতে আপনার অ্যাপটি সদস্যতা নিতে, আপনাকে আপনার Firebase প্রকল্পের সাথে এক জোড়া কী সংযুক্ত করতে হবে৷ আপনি হয় একটি নতুন কী জোড়া তৈরি করতে পারেন বা Firebase কনসোলের মাধ্যমে আপনার বিদ্যমান কী জোড়া আমদানি করতে পারেন।

একটি নতুন কী জোড়া তৈরি করুন
  1. Firebase কনসোল সেটিংস ফলকের ক্লাউড মেসেজিং ট্যাবটি খুলুন এবং ওয়েব কনফিগারেশন বিভাগে স্ক্রোল করুন।

  2. ওয়েব পুশ সার্টিফিকেট ট্যাবে, কী জোড়া তৈরি করুন ক্লিক করুন। কনসোল একটি নোটিশ প্রদর্শন করে যে কী জোড়া তৈরি করা হয়েছে এবং সর্বজনীন কী স্ট্রিং এবং তারিখ যোগ করা হয়েছে তা প্রদর্শন করে।

একটি বিদ্যমান কী জোড়া আমদানি করুন

আপনার যদি একটি বিদ্যমান কী জোড়া থাকে যা আপনি ইতিমধ্যেই আপনার ওয়েব অ্যাপের সাথে ব্যবহার করছেন, আপনি এটি FCM এ আমদানি করতে পারেন যাতে আপনি FCM API-এর মাধ্যমে আপনার বিদ্যমান ওয়েব অ্যাপের দৃষ্টান্তগুলিতে পৌঁছাতে পারেন। কী আমদানি করতে, আপনার Firebase প্রকল্পে মালিক-স্তরের অ্যাক্সেস থাকতে হবে। বেস64 ইউআরএল নিরাপদ এনকোডেড আকারে আপনার বিদ্যমান সর্বজনীন এবং ব্যক্তিগত কী আমদানি করুন:

  1. Firebase কনসোল সেটিংস ফলকের ক্লাউড মেসেজিং ট্যাবটি খুলুন এবং ওয়েব কনফিগারেশন বিভাগে স্ক্রোল করুন।

  2. ওয়েব পুশ সার্টিফিকেট ট্যাবে, লিঙ্ক টেক্সট খুঁজুন এবং নির্বাচন করুন, "একটি বিদ্যমান কী জোড়া আমদানি করুন।"

  3. একটি কী জোড়া ডায়ালগে আমদানি করুন , সংশ্লিষ্ট ক্ষেত্রে আপনার সর্বজনীন এবং ব্যক্তিগত কীগুলি প্রদান করুন এবং আমদানিতে ক্লিক করুন। কনসোল সর্বজনীন কী স্ট্রিং এবং যোগ করা তারিখ প্রদর্শন করে।

কীগুলির বিন্যাস এবং কীভাবে সেগুলি তৈরি করতে হয় সে সম্পর্কে আরও তথ্যের জন্য, অ্যাপ্লিকেশন সার্ভার কীগুলি দেখুন।

FCM প্লাগইন ইনস্টল করুন

  1. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে ফ্লটারের জন্য ফায়ারবেস প্লাগইনগুলি ইনস্টল করুন এবং শুরু করুন

  2. আপনার ফ্লাটার প্রকল্পের মূল থেকে, প্লাগইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    flutter pub add firebase_messaging
    
  3. একবার সম্পূর্ণ হয়ে গেলে, আপনার ফ্লাটার অ্যাপ্লিকেশন পুনর্নির্মাণ করুন:

    flutter run
    

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

একটি নির্দিষ্ট ডিভাইসে একটি বার্তা পাঠাতে, আপনাকে সেই ডিভাইসের নিবন্ধন টোকেন জানতে হবে। যেহেতু এই টিউটোরিয়ালটি সম্পূর্ণ করার জন্য আপনাকে বিজ্ঞপ্তি কনসোলের একটি ক্ষেত্রে টোকেনটি প্রবেশ করতে হবে, টোকেনটি কপি করতে ভুলবেন না বা আপনি এটি পুনরুদ্ধার করার পরে নিরাপদে সংরক্ষণ করুন৷

একটি অ্যাপ ইন্সট্যান্সের জন্য বর্তমান রেজিস্ট্রেশন টোকেন পুনরুদ্ধার করতে, getToken() কল করুন। যদি বিজ্ঞপ্তির অনুমতি না দেওয়া হয়, তাহলে এই পদ্ধতি ব্যবহারকারীকে বিজ্ঞপ্তির অনুমতি চাইবে৷ অন্যথায়, এটি একটি টোকেন ফেরত দেয় বা একটি ত্রুটির কারণে ভবিষ্যতে প্রত্যাখ্যান করে।

// You may set the permission requests to "provisional" which allows the user to choose what type
// of notifications they would like to receive once the user receives a notification.
final notificationSettings = await FirebaseMessaging.instance.requestPermission(provisional: true);

// For apple platforms, ensure the APNS token is available before making any FCM plugin API calls
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if (apnsToken != null) {
 // APNS token is available, make FCM plugin API requests...
}

ওয়েব প্ল্যাটফর্মে, getToken() এ আপনার VAPID পাবলিক কী পাস করুন :

final fcmToken = await FirebaseMessaging.instance.getToken(vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

যখনই টোকেন আপডেট করা হয় তখন অবহিত হতে, onTokenRefresh স্ট্রীমে সাবস্ক্রাইব করুন:

FirebaseMessaging.instance.onTokenRefresh
    .listen((fcmToken) {
      // TODO: If necessary send token to application server.

      // Note: This callback is fired at each app startup and whenever a new
      // token is generated.
    })
    .onError((err) {
      // Error getting token.
    });

স্বয়ংক্রিয় সূচনা প্রতিরোধ করুন

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

iOS

iOS-এ, আপনার Info.plist এ একটি মেটাডেটা মান যোগ করুন:

FirebaseMessagingAutoInitEnabled = NO

অ্যান্ড্রয়েড

Android-এ, আপনার AndroidManifest.xml এ এই মেটাডেটা মানগুলি যোগ করে অ্যানালিটিক্স সংগ্রহ এবং FCM স্বয়ংক্রিয় সূচনা (আপনাকে অবশ্যই উভয়ই নিষ্ক্রিয় করতে হবে) অক্ষম করুন :

<meta-data
    android:name="firebase_messaging_auto_init_enabled"
    android:value="false" />
<meta-data
    android:name="firebase_analytics_collection_enabled"
    android:value="false" />

রানটাইমে FCM অটো-ইনিট পুনরায় সক্ষম করুন

একটি নির্দিষ্ট অ্যাপের উদাহরণের জন্য স্বয়ংক্রিয়-ইনিট সক্ষম করতে, setAutoInitEnabled() কল করুন :

await FirebaseMessaging.instance.setAutoInitEnabled(true);

একবার সেট করার পরে এই মানটি অ্যাপ রিস্টার্ট জুড়ে থাকে।

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

ক্লায়েন্ট অ্যাপ সেট আপ করার পরে, আপনি বিজ্ঞপ্তি কম্পোজারের সাথে ডাউনস্ট্রিম বার্তা পাঠানো শুরু করতে প্রস্তুত। একটি ব্যাকগ্রাউন্ডেড অ্যাপে একটি পরীক্ষার বার্তা পাঠান দেখুন।

আপনার অ্যাপে অন্যান্য, আরও উন্নত আচরণ যোগ করতে, আপনার একটি সার্ভার বাস্তবায়নের প্রয়োজন হবে।

তারপর, আপনার অ্যাপ ক্লায়েন্টে: