Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

पब/उप ट्रिगर

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

Google क्लाउड का पब/सब एक विश्व स्तर पर वितरित संदेश बस है जो आपकी आवश्यकता के अनुसार स्वचालित रूप से मापता है। आप function.pubsub का उपयोग कर एक ऐसा functions.pubsub बना सकते हैं जो पब/उप ईवेंट को संभालता है।

एक पब/उप फ़ंक्शन को ट्रिगर करें

जब भी किसी विशिष्ट विषय पर कोई नया पब/उप संदेश भेजा जाता है तो आप फ़ंक्शन को ट्रिगर कर सकते हैं। आपको वह प्रकाशन/उप विषय नाम निर्दिष्ट करना होगा जिसे आप अपने फ़ंक्शन को ट्रिगर करना चाहते हैं, और ईवेंट को onPublish() ईवेंट हैंडलर में सेट करें:

exports.helloPubSub = functions.pubsub.topic('topic-name').onPublish((message) => {
  // ...
});

पब/उप संदेश पेलोड तक पहुंचें

पब/उप संदेश के लिए पेलोड Message ऑब्जेक्ट से आपके फ़ंक्शन पर लौटाया जा सकता है। पब/उप संदेश निकाय में JSON वाले संदेशों के लिए, क्लाउड फ़ंक्शंस के लिए Firebase SDK में संदेश को डिकोड करने के लिए एक सहायक गुण होता है। उदाहरण के लिए, यहाँ एक साधारण JSON पेलोड के साथ प्रकाशित एक संदेश है:

gcloud pubsub topics publish topic-name --message '{"name":"Xenia"}'

आप json प्रॉपर्टी के माध्यम से JSON डेटा पेलोड को इस तरह एक्सेस कर सकते हैं:

  // Get the `name` attribute of the PubSub message JSON body.
  let name = null;
  try {
    name = message.json.name;
  } catch (e) {
    functions.logger.error('PubSub message was not JSON', e);
  }

अन्य, गैर-जेएसओएन पेलोड संदेश ऑब्जेक्ट में बेस 64 एन्कोडेड स्ट्रिंग्स के रूप में पब/उप संदेश में निहित हैं। निम्न जैसे संदेश को पढ़ने के लिए, आपको दिखाए गए अनुसार बेस 64 एन्कोडेड स्ट्रिंग को डीकोड करना होगा:

gcloud pubsub topics publish topic-name --message 'MyMessage'

// Decode the PubSub Message body.
const messageBody = message.data ? Buffer.from(message.data, 'base64').toString() : null;

पहुँच संदेश विशेषताएँ

प्रकाशन आदेश में सेट डेटा विशेषताओं के साथ पब/उप संदेश भेजा जा सकता है। उदाहरण के लिए, आप एक name विशेषता के साथ एक संदेश प्रकाशित कर सकते हैं:

gcloud pubsub topics publish topic-name --attribute name=Xenia

आप ऐसी विशेषताओं को Message.attributes से पढ़ सकते हैं:

// Get the `name` attribute of the message.
const name = message.attributes.name;

आप देख सकते हैं कि Message.attributes में कुछ बुनियादी डेटा जैसे संदेश आईडी या संदेश प्रकाशित होने का समय उपलब्ध नहीं है। इसके समाधान के लिए, आप इन विवरणों को ट्रिगर करने वाले ईवेंट के EventContext में एक्सेस कर सकते हैं. उदाहरण के लिए:

exports.myFunction = functions.pubsub.topic('topic1').onPublish((message, context) => {
    console.log('The function was triggered at ', context.timestamp);
    console.log('The unique ID for the event is', context.eventId);
});