Firebase ক্লাউড মেসেজিং দিয়ে শুরু করুন


এই কুইকস্টার্টটি বর্ণনা করে কিভাবে আপনার মোবাইল এবং ওয়েব ক্লায়েন্ট অ্যাপগুলিতে Firebase Cloud Messaging সেট আপ করবেন যাতে আপনি নির্ভরযোগ্যভাবে বার্তা পাঠাতে পারেন। সার্ভার পরিবেশের জন্য, আপনার সার্ভার পরিবেশ এবং FCM দেখুন।

একটি জাভাস্ক্রিপ্ট Firebase Cloud Messaging ক্লায়েন্ট অ্যাপ সেট আপ করুন

FCM JavaScript API আপনাকে Push API সমর্থন করে এমন ব্রাউজারগুলিতে চলমান ওয়েব অ্যাপগুলিতে বিজ্ঞপ্তি বার্তা পেতে দেয়। এর মধ্যে এই সমর্থন ম্যাট্রিক্সে তালিকাভুক্ত ব্রাউজার সংস্করণ এবং Push API ব্যবহার করে Chrome এক্সটেনশন অন্তর্ভুক্ত রয়েছে।

FCM SDK শুধুমাত্র HTTPS-এর মাধ্যমে পরিবেশিত পৃষ্ঠাগুলিতে সমর্থিত। এর কারণ হল পরিষেবা কর্মীদের ব্যবহার, যা শুধুমাত্র HTTPS সাইটগুলিতে উপলব্ধ। যদি আপনার কোনও সরবরাহকারীর প্রয়োজন হয়, Firebase App Hosting সুপারিশ করা হয় এবং আপনার নিজস্ব ডোমেনে HTTPS হোস্টিংয়ের জন্য একটি বিনামূল্যের স্তর প্রদান করে।

FCM JavaScript API ব্যবহার শুরু করার জন্য, আপনাকে আপনার ওয়েব অ্যাপে Firebase যোগ করতে হবে এবং রেজিস্ট্রেশন টোকেন অ্যাক্সেস করার জন্য লজিক যোগ করতে হবে।

FCM SDK যোগ করুন এবং আরম্ভ করুন

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে Firebase JS SDK ইনস্টল করুন এবং Firebase আরম্ভ করুন

  2. Firebase Cloud Messaging JS SDK যোগ করুন এবং Firebase Cloud Messaging আরম্ভ করুন:

Web

import { initializeApp } from "firebase/app";
import { getMessaging } from "firebase/messaging";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Firebase Cloud Messaging and get a reference to the service
const messaging = getMessaging(app);

Web

import firebase from "firebase/compat/app";
import "firebase/compat/messaging";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Firebase Cloud Messaging and get a reference to the service
const messaging = firebase.messaging();

আপনি যদি ওয়েবের জন্য FCM ব্যবহার করেন এবং SDK 6.7.0 বা তার পরবর্তী সংস্করণে আপগ্রেড করতে চান, তাহলে আপনাকে Google Cloud এ আপনার প্রকল্পের জন্য FCM নিবন্ধন API সক্ষম করতে হবে। API সক্ষম করার সময়, নিশ্চিত করুন যে আপনি Firebase-এর জন্য যে Google অ্যাকাউন্ট ব্যবহার করেন সেই একই Google অ্যাকাউন্ট দিয়ে ক্লাউড কনসোলে লগ ইন করেছেন এবং সঠিক প্রকল্পটি নির্বাচন করেছেন। FCM SDK যোগ করা নতুন প্রকল্পগুলিতে এই API ডিফল্টরূপে সক্ষম থাকে।

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

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

একটি নতুন কী জোড়া তৈরি করুন

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

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

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

  1. Firebase কনসোল সেটিংস প্যানের ক্লাউড মেসেজিং ট্যাবটি খুলুন এবং ওয়েব কনফিগারেশন বিভাগে যান।
  2. ওয়েব পুশ সার্টিফিকেট ট্যাবে, লিঙ্ক টেক্সটটি খুঁজুন এবং নির্বাচন করুন: একটি বিদ্যমান কী জোড়া আমদানি করুন
  3. Import a key pair ডায়ালগে, সংশ্লিষ্ট ক্ষেত্রগুলিতে আপনার পাবলিক এবং প্রাইভেট কীগুলি প্রদান করুন এবং Import এ ক্লিক করুন। কনসোলটি পাবলিক কী স্ট্রিং এবং যোগ করা তারিখ প্রদর্শন করে।

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

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

getToken(): Promise<string> পদ্ধতিটি FCM বিভিন্ন পুশ পরিষেবাগুলিতে বার্তা অনুরোধ পাঠানোর সময় VAPID কী শংসাপত্র ব্যবহার করার অনুমতি দেয়। Configure Web Credentials with FCM নির্দেশাবলী অনুসারে আপনার তৈরি বা আমদানি করা কী ব্যবহার করে, মেসেজিং অবজেক্টটি পুনরুদ্ধার করার পরে এটি আপনার কোডে যুক্ত করুন:

import { getMessaging, getToken } from "firebase/messaging";

const messaging = getMessaging();
// Add the public key generated from the console here.
getToken(messaging, {vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu"});

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

যখন আপনার কোনও অ্যাপ ইনস্ট্যান্সের জন্য বর্তমান রেজিস্ট্রেশন টোকেনটি পুনরুদ্ধার করার প্রয়োজন হয়, তখন প্রথমে Notification.requestPermission() ব্যবহার করে ব্যবহারকারীর কাছ থেকে বিজ্ঞপ্তি অনুমতির অনুরোধ করুন। দেখানো হিসাবে কল করা হলে, অনুমতি দেওয়া হলে এটি একটি টোকেন ফেরত দেয় অথবা অস্বীকার করা হলে প্রতিশ্রুতি প্রত্যাখ্যান করে:

function requestPermission() {
  console.log('Requesting permission...');
  Notification.requestPermission().then((permission) => {
    if (permission === 'granted') {
      console.log('Notification permission granted.');

FCM জন্য একটি firebase-messaging-sw.js ফাইল প্রয়োজন। যদি আপনার কাছে ইতিমধ্যেই একটি firebase-messaging-sw.js ফাইল না থাকে, তাহলে সেই নামের একটি খালি ফাইল তৈরি করুন এবং টোকেন পুনরুদ্ধার করার আগে এটি আপনার ডোমেনের রুটে রাখুন। ক্লায়েন্ট সেটআপ প্রক্রিয়ার পরে আপনি ফাইলটিতে অর্থপূর্ণ সামগ্রী যোগ করতে পারেন।

বর্তমান টোকেনটি পুনরুদ্ধার করতে:

Web

import { getMessaging, getToken } from "firebase/messaging";

// Get registration token. Initially this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
const messaging = getMessaging();
getToken(messaging, { vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => {
  if (currentToken) {
    // Send the token to your server and update the UI if necessary
    // ...
  } else {
    // Show permission request UI
    console.log('No registration token available. Request permission to generate one.');
    // ...
  }
}).catch((err) => {
  console.log('An error occurred while retrieving token. ', err);
  // ...
});

Web

// Get registration token. Initially this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
messaging.getToken({ vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => {
  if (currentToken) {
    // Send the token to your server and update the UI if necessary
    // ...
  } else {
    // Show permission request UI
    console.log('No registration token available. Request permission to generate one.');
    // ...
  }
}).catch((err) => {
  console.log('An error occurred while retrieving token. ', err);
  // ...
});

টোকেনটি পাওয়ার পর, এটি আপনার অ্যাপ সার্ভারে পাঠান এবং আপনার পছন্দের পদ্ধতি ব্যবহার করে সংরক্ষণ করুন।

একটি পরীক্ষামূলক বিজ্ঞপ্তি বার্তা পাঠান

  1. টার্গেট ডিভাইসে অ্যাপটি ইনস্টল করুন এবং চালান। অ্যাপল ডিভাইসে, আপনাকে রিমোট নোটিফিকেশন পাওয়ার জন্য অনুমতির অনুরোধ গ্রহণ করতে হবে।
  2. ডিভাইসে অ্যাপটি ব্যাকগ্রাউন্ডে আছে কিনা তা পরীক্ষা করুন।
  3. ফায়ারবেস কনসোলে, মেসেজিং পৃষ্ঠাটি খুলুন।
  4. যদি এটি আপনার প্রথম বার্তা হয়, তাহলে আপনার প্রথম প্রচারণা তৈরি করুন নির্বাচন করুন।
    1. Firebase Notification messages নির্বাচন করুন এবং Create নির্বাচন করুন।
  5. অন্যথায়, প্রচারণা ট্যাবে, নতুন প্রচারণা এবং তারপর বিজ্ঞপ্তি নির্বাচন করুন।
  6. বার্তার টেক্সট লিখুন।
  7. ডান ফলক থেকে পরীক্ষামূলক বার্তা পাঠান নির্বাচন করুন।
  8. "একটি FCM নিবন্ধন টোকেন যোগ করুন" লেবেলযুক্ত ক্ষেত্রে, আপনার নিবন্ধন টোকেনটি লিখুন।
  9. পরীক্ষা নির্বাচন করুন।

আপনি Test নির্বাচন করার পরে, লক্ষ্যযুক্ত ক্লায়েন্ট ডিভাইস, যার অ্যাপটি ব্যাকগ্রাউন্ডে থাকবে, বিজ্ঞপ্তিটি পাবে।

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

সেটআপ ধাপগুলি সম্পন্ন করার পরে, ওয়েবের জন্য FCM (জাভাস্ক্রিপ্ট) নিয়ে এগিয়ে যাওয়ার জন্য এখানে কয়েকটি বিকল্প রয়েছে: