JavaScript Firebase क्लाउड से मैसेज वाला क्लाइंट ऐप्लिकेशन सेट अप करना

FCM JavaScript API की मदद से, Push API के साथ काम करने वाले ब्राउज़र में चल रहे वेब ऐप्लिकेशन में सूचना मैसेज पाने की सुविधा मिलती है. इसमें, इस सहायता मैट्रिक्स में दिए गए ब्राउज़र वर्शन और Push API की मदद से काम करने वाले Chrome एक्सटेंशन शामिल हैं.

FCM SDK सिर्फ़ एचटीटीपीएस पर दिखाए जाने वाले पेजों पर काम करता है. ऐसा इसलिए है, क्योंकि इसमें सेवा वर्कर का इस्तेमाल किया जाता है. ये वर्कर सिर्फ़ एचटीटीपीएस साइटों पर उपलब्ध होते हैं. अगर आपको सेवा देने वाली कंपनी की ज़रूरत है, तो हमारा सुझाव है कि आप Firebase होस्टिंग का इस्तेमाल करें. यह आपके डोमेन पर एचटीटीपीएस होस्टिंग के लिए, बिना किसी शुल्क के टियर उपलब्ध कराती है.

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 Console में अपने प्रोजेक्ट के लिए FCM Registration API को चालू करना होगा. एपीआई को चालू करते समय,पक्का करें कि आपने Cloud Console में उसी Google खाते से लॉग इन किया हो जिसका इस्तेमाल आपने Firebase के लिए किया है. साथ ही, सही प्रोजेक्ट चुनना न भूलें. FCM SDK टूल जोड़ने वाले नए प्रोजेक्ट में, यह एपीआई डिफ़ॉल्ट रूप से चालू होता है.

FCM की मदद से वेब क्रेडेंशियल कॉन्फ़िगर करना

FCM वेब इंटरफ़ेस, वेब क्रेडेंशियल का इस्तेमाल करता है. इन्हें "Voluntary Application Server Identification" या "VAPID" कुंजियां कहा जाता है. इनका इस्तेमाल, वेब पर पुश नोटिफ़िकेशन की सेवाओं को अनुरोध भेजने की अनुमति देने के लिए किया जाता है. अपने ऐप्लिकेशन को पुश नोटिफ़िकेशन की सदस्यता देने के लिए, आपको अपने Firebase प्रोजेक्ट के साथ एक जोड़ी कुंजियां जोड़नी होंगी. Firebase कंसोल की मदद से, नया पासकोड जोड़ा जा सकता है या मौजूदा पासकोड इंपोर्ट किया जा सकता है.

नया कुंजी जोड़ा जनरेट करना

  1. Firebase कंसोल के सेटिंग पैनल में, क्लाउड मैसेजिंग टैब खोलें और वेब कॉन्फ़िगरेशन सेक्शन पर स्क्रोल करें.
  2. वेब पुश सर्टिफ़िकेट टैब में, कुंजी का जोड़ा जनरेट करें पर क्लिक करें. कंसोल पर, कुंजी का जोड़ा जनरेट होने की सूचना दिखती है. साथ ही, सार्वजनिक पासकोड की स्ट्रिंग और जोड़े जाने की तारीख भी दिखती है.

कोई मौजूदा पासकोड जोड़ना

अगर आपके पास कोई मौजूदा पासकोड जोड़ा गया है और उसका इस्तेमाल पहले से ही आपके वेब ऐप्लिकेशन के साथ किया जा रहा है, तो उसे FCM में इंपोर्ट किया जा सकता है. इससे, FCM एपीआई की मदद से, अपने मौजूदा वेब ऐप्लिकेशन इंस्टेंस तक पहुंचा जा सकता है. पासकोड इंपोर्ट करने के लिए, आपके पास Firebase प्रोजेक्ट का मालिक-लेवल ऐक्सेस होना चाहिए. अपनी मौजूदा सार्वजनिक और निजी कुंजी को base64 यूआरएल सेफ़ कोड में बदलकर इंपोर्ट करें:

  1. Firebase कंसोल के सेटिंग पैनल में, क्लाउड मैसेजिंग टैब खोलें और वेब कॉन्फ़िगरेशन सेक्शन पर स्क्रोल करें.
  2. वेब पुश सर्टिफ़िकेट टैब में, लिंक टेक्स्ट ढूंढें और चुनें, "मौजूदा पासकोड जोड़ें."
  3. कुंजी जोड़ी इंपोर्ट करें डायलॉग में, अपने सार्वजनिक और निजी पासकोड को उनके संबंधित फ़ील्ड में डालें और इंपोर्ट करें पर क्लिक करें. कंसोल में, सार्वजनिक तौर पर ऐक्सेस की जा सकने वाली पासकोड स्ट्रिंग और जोड़े जाने की तारीख दिखती है.

अपने ऐप्लिकेशन में कुंजी जोड़ने के तरीके के बारे में जानने के लिए, अपने ऐप्लिकेशन में वेब क्रेडेंशियल कॉन्फ़िगर करना देखें. कुंजियों के फ़ॉर्मैट और उन्हें जनरेट करने के तरीके के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन सर्वर कुंजियां देखें.

अपने ऐप्लिकेशन में वेब क्रेडेंशियल कॉन्फ़िगर करना

getToken(): Promise<string> के तरीके से, FCM अलग-अलग पुश सेवाओं को मैसेज भेजने का अनुरोध करते समय, VAPID पासकोड का इस्तेमाल कर सकता है. 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);
  // ...
});

टोकन मिलने के बाद, उसे अपने ऐप्लिकेशन सर्वर पर भेजें और अपने पसंदीदा तरीके का इस्तेमाल करके उसे सेव करें.

अगले चरण

सेटअप करने के बाद, वेब (JavaScript) के लिए FCM का इस्तेमाल करने के लिए, यहां कुछ विकल्प दिए गए हैं: