शुरू करें: अपने पहले फ़ंक्शन लिखें, टेस्ट करें, और डिप्लॉय करें


Cloud Functions इस्तेमाल करने के लिए, इस ट्यूटोरियल की मदद लें. यह ज़रूरी सेटअप टास्क से शुरू होता है. साथ ही, यह दो मिलते-जुलते फ़ंक्शन बनाने, उनकी जांच करने, और उन्हें डिप्लॉय करने का काम करता है:

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

यहां फ़ंक्शन वाला पूरा सैंपल कोड दिया गया है:

Node.js के लिए

// The Cloud Functions for Firebase SDK to create Cloud Functions and triggers.
const {logger} = require("firebase-functions");
const {onRequest} = require("firebase-functions/v2/https");
const {onDocumentCreated} = require("firebase-functions/v2/firestore");

// The Firebase Admin SDK to access Firestore.
const {initializeApp} = require("firebase-admin/app");
const {getFirestore} = require("firebase-admin/firestore");

initializeApp();

// Take the text parameter passed to this HTTP endpoint and insert it into
// Firestore under the path /messages/:documentId/original
exports.addmessage = onRequest(async (req, res) => {
  // Grab the text parameter.
  const original = req.query.text;
  // Push the new message into Firestore using the Firebase Admin SDK.
  const writeResult = await getFirestore()
      .collection("messages")
      .add({original: original});
  // Send back a message that we've successfully written the message
  res.json({result: `Message with ID: ${writeResult.id} added.`});
});

// Listens for new messages added to /messages/:documentId/original
// and saves an uppercased version of the message
// to /messages/:documentId/uppercase
exports.makeuppercase = onDocumentCreated("/messages/{documentId}", (event) => {
  // Grab the current value of what was written to Firestore.
  const original = event.data.data().original;

  // Access the parameter `{documentId}` with `event.params`
  logger.log("Uppercasing", event.params.documentId, original);

  const uppercase = original.toUpperCase();

  // You must return a Promise when performing
  // asynchronous tasks inside a function
  // such as writing to Firestore.
  // Setting an 'uppercase' field in Firestore document returns a Promise.
  return event.data.ref.set({uppercase}, {merge: true});
});

Python

# The Cloud Functions for Firebase SDK to create Cloud Functions and set up triggers.
from firebase_functions import firestore_fn, https_fn

# The Firebase Admin SDK to access Cloud Firestore.
from firebase_admin import initialize_app, firestore
import google.cloud.firestore

app = initialize_app()


@https_fn.on_request()
def addmessage(req: https_fn.Request) -> https_fn.Response:
    """Take the text parameter passed to this HTTP endpoint and insert it into
    a new document in the messages collection."""
    # Grab the text parameter.
    original = req.args.get("text")
    if original is None:
        return https_fn.Response("No text parameter provided", status=400)

    firestore_client: google.cloud.firestore.Client = firestore.client()

    # Push the new message into Cloud Firestore using the Firebase Admin SDK.
    _, doc_ref = firestore_client.collection("messages").add({"original": original})

    # Send back a message that we've successfully written the message
    return https_fn.Response(f"Message with ID {doc_ref.id} added.")


@firestore_fn.on_document_created(document="messages/{pushId}")
def makeuppercase(event: firestore_fn.Event[firestore_fn.DocumentSnapshot | None]) -> None:
    """Listens for new documents to be added to /messages. If the document has
    an "original" field, creates an "uppercase" field containg the contents of
    "original" in upper case."""

    # Get the value of "original" if it exists.
    if event.data is None:
        return
    try:
        original = event.data.get("original")
    except KeyError:
        # No "original" field, so do nothing.
        return

    # Set the "uppercase" field.
    print(f"Uppercasing {event.params['pushId']}: {original}")
    upper = original.upper()
    event.data.reference.update({"uppercase": upper})

इस ट्यूटोरियल के बारे में जानकारी

हमने इस सैंपल के लिए, Cloud Firestore और एचटीटीपी से ट्रिगर किए गए फ़ंक्शन को चुना है. ऐसा इसलिए किया गया है, क्योंकि इन बैकग्राउंड ट्रिगर की Firebase लोकल एम्युलेटर सुइट की मदद से अच्छी तरह से जांच की जा सकती है. इस टूलसेट में रीयलटाइम डेटाबेस, क्लाउड स्टोरेज, PubSub, पुष्टि, और कॉल किए जा सकने वाले एचटीटीपी ट्रिगर भी काम करते हैं. दूसरी तरह के बैकग्राउंड ट्रिगर, जैसे कि Remote Config और TestLab ट्रिगर को इंटरैक्टिव तरीके से टेस्ट किया जा सकता है. इसके लिए, ऐसे टूलसेट का इस्तेमाल किया जाता है जिनके बारे में इस पेज में नहीं बताया गया है.

इस ट्यूटोरियल के नीचे दिए गए सेक्शन में, सैंपल बनाने, उसकी जांच करने, और उसे डिप्लॉय करने का तरीका बताया गया है.

Firebase प्रोजेक्ट बनाना

  1. Firebase कंसोल में, प्रोजेक्ट जोड़ें पर क्लिक करें.

    • किसी मौजूदा Google Cloud प्रोजेक्ट में Firebase के संसाधन जोड़ने के लिए, उसके प्रोजेक्ट का नाम डालें या ड्रॉपडाउन मेन्यू से उसे चुनें.

    • नया प्रोजेक्ट बनाने के लिए, प्रोजेक्ट का पसंदीदा नाम डालें. आपके पास प्रोजेक्ट के नाम के नीचे दिखाए गए प्रोजेक्ट आईडी में बदलाव करने का भी विकल्प है.

  2. अगर कहा जाए, तो Firebase की शर्तों को पढ़ें और स्वीकार करें.

  3. जारी रखें पर क्लिक करें.

  4. (ज़रूरी नहीं) अपने प्रोजेक्ट के लिए Google Analytics सेट अप करें. इससे आपको इनमें से किसी भी Firebase प्रॉडक्ट का इस्तेमाल करके बेहतर अनुभव मिलेगा:

    किसी मौजूदा Google Analytics खाता को चुनें या नया खाता बनाएं.

    नया खाता बनाने पर, Analytics की रिपोर्टिंग की जगह चुनें. इसके बाद, अपने प्रोजेक्ट के लिए, डेटा शेयर करने की सेटिंग और Google Analytics की शर्तों को स्वीकार करें.

  5. प्रोजेक्ट बनाएं पर क्लिक करें या अगर किसी मौजूदा Google Cloud प्रोजेक्ट का इस्तेमाल किया जा रहा है, तो Firebase जोड़ें पर क्लिक करें.

Firebase आपके Firebase प्रोजेक्ट के लिए संसाधन अपने-आप सेट अप करता है. प्रोसेस पूरी होने के बाद, आपको Firebase कंसोल में, Firebase प्रोजेक्ट की खास जानकारी देने वाले पेज पर ले जाया जाएगा.

अपना एनवायरमेंट और Firebase सीएलआई सेट अप करें

Node.js के लिए

फ़ंक्शन लिखने के लिए, आपको Node.js एनवायरमेंट की ज़रूरत होगी. साथ ही, Cloud Functions रनटाइम पर फ़ंक्शन डिप्लॉय करने के लिए, आपको Firebase सीएलआई की ज़रूरत होगी. Node.js और npm इंस्टॉल करने के लिए, नोड वर्शन मैनेजर का सुझाव दिया जाता है.

Node.js और npm को इंस्टॉल करने के बाद, अपने पसंदीदा तरीके से Firebase सीएलआई इंस्टॉल करें. एनपीएम के ज़रिए सीएलआई इंस्टॉल करने के लिए, इसका इस्तेमाल करें:

npm install -g firebase-tools

इससे दुनिया भर में उपलब्ध Firebase कमांड इंस्टॉल हो जाता है. अगर निर्देश काम नहीं करता, तो आपको npm अनुमतियां बदलनी पड़ सकती हैं. firebase-tools को नए वर्शन में अपडेट करने के लिए, उसी निर्देश को फिर से चलाएं.

Python

फ़ंक्शन लिखने के लिए, आपको Python एनवायरमेंट की ज़रूरत होगी. साथ ही, Cloud Functions रनटाइम में फ़ंक्शन डिप्लॉय करने के लिए, आपको Firebase सीएलआई की ज़रूरत होगी. डिपेंडेंसी को आइसोलेट करने के लिए, हमारा सुझाव है कि venv का इस्तेमाल करें. Python के 3.10 और 3.11 वर्शन इस्तेमाल किए जा सकते हैं.

Python इंस्टॉल करने के बाद, अपने पसंदीदा तरीके से Firebase सीएलआई इंस्टॉल करें.

प्रोजेक्ट शुरू करना

Cloud Functions के लिए Firebase SDK टूल का इस्तेमाल शुरू करने पर, डिपेंडेंसी और कम से कम सैंपल कोड वाला एक खाली प्रोजेक्ट बनाया जाता है. अगर Node.js का इस्तेमाल किया जा रहा है, तो फ़ंक्शन लिखने के लिए टाइपस्क्रिप्ट या JavaScript चुनें. इस ट्यूटोरियल के लिए, आपको Cloud Firestore को शुरू करना होगा.

प्रोजेक्ट शुरू करने के लिए:

  1. ब्राउज़र के ज़रिए लॉग इन करने और Firebase सीएलआई की पुष्टि करने के लिए, firebase login चलाएं.
  2. अपनी Firebase प्रोजेक्ट डायरेक्ट्री पर जाएं.
  3. firebase init firestore चलाएं. इस ट्यूटोरियल के लिए, Firestore के नियमों और इंडेक्स फ़ाइलों के लिए निर्देश मिलने पर, डिफ़ॉल्ट वैल्यू स्वीकार की जा सकती हैं. अगर आपने इस प्रोजेक्ट में अभी तक Cloud Firestore का इस्तेमाल नहीं किया है, तो आपको Firestore के लिए शुरुआती मोड और जगह भी चुननी होगी. इसके बारे में Cloud Firestore के साथ शुरू करने में बताया गया है.
  4. firebase init functions चलाएं. सीएलआई आपको कोई मौजूदा कोडबेस चुनने या नया कोड बेस शुरू करने और उसे नाम देने का प्रॉम्प्ट देता है. अगर आपने अभी-अभी शुरुआत की है, तो डिफ़ॉल्ट जगह पर सिर्फ़ एक कोड बेस होना ही काफ़ी है. बाद में, कोड को लागू करने का दायरा बढ़ने पर, शायद आप कोडबेस में फ़ंक्शन व्यवस्थित करना चाहें.
  5. सीएलआई में आपको ये विकल्प मिलते हैं:

    • JavaScript
    • TypeScript
    • Python

    इस ट्यूटोरियल के लिए, JavaScript या Python चुनें. टाइपस्क्रिप्ट में लिखने के लिए, TypeScript के साथ फ़ंक्शन लिखें देखें.

  6. सीएलआई में आपको डिपेंडेंसी इंस्टॉल करने का विकल्प मिलता है. अगर आपको डिपेंडेंसी को किसी दूसरे तरीके से मैनेज करना है, तो इसे अस्वीकार करना सुरक्षित है.

इन निर्देशों के पूरा होने के बाद, आपके प्रोजेक्ट का स्ट्रक्चर कुछ ऐसा दिखेगा:

Node.js के लिए

myproject
+- .firebaserc    # Hidden file that helps you quickly switch between
|                 # projects with `firebase use`
|
+- firebase.json  # Describes properties for your project
|
+- functions/     # Directory containing all your functions code
      |
      +- .eslintrc.json  # Optional file containing rules for JavaScript linting.
      |
      +- package.json  # npm package file describing your Cloud Functions code
      |
      +- index.js      # Main source file for your Cloud Functions code
      |
      +- node_modules/ # Directory where your dependencies (declared in
                        # package.json) are installed

Node.js के लिए, शुरू करने के दौरान बनाई गई package.json फ़ाइल में एक ज़रूरी की मौजूद होती है: "engines": {"node": "18"}. यह फ़ंक्शन लिखने और डिप्लॉय करने के लिए, आपके Node.js वर्शन के बारे में बताता है. इस्तेमाल किए जा सकने वाले अन्य वर्शन चुने जा सकते हैं.

Python

myproject
+- .firebaserc    # Hidden file that helps you quickly switch between
|                 # projects with `firebase use`
|
+- firebase.json  # Describes properties for your project
|
+- functions/     # Directory containing all your functions code
      |
      +- main.py      # Main source file for your Cloud Functions code
      |
      +- requirements.txt  #  List of the project's modules and packages 
      |
      +- venv/ # Directory where your dependencies are installed

ज़रूरी मॉड्यूल इंपोर्ट करके, ऐप्लिकेशन शुरू करें

सेटअप के टास्क पूरे करने के बाद, सोर्स डायरेक्ट्री को खोला जा सकता है. साथ ही, यहां दिए गए सेक्शन में बताए गए तरीके से कोड जोड़ा जा सकता है. इस सैंपल के लिए, आपके प्रोजेक्ट को Cloud Functions और एडमिन SDK मॉड्यूल इंपोर्ट करने होंगे. अपनी सोर्स फ़ाइल में इस तरह की लाइनें जोड़ें:

Node.js के लिए

// The Cloud Functions for Firebase SDK to create Cloud Functions and triggers.
const {logger} = require("firebase-functions");
const {onRequest} = require("firebase-functions/v2/https");
const {onDocumentCreated} = require("firebase-functions/v2/firestore");

// The Firebase Admin SDK to access Firestore.
const {initializeApp} = require("firebase-admin/app");
const {getFirestore} = require("firebase-admin/firestore");

initializeApp();

Python

# The Cloud Functions for Firebase SDK to create Cloud Functions and set up triggers.
from firebase_functions import firestore_fn, https_fn

# The Firebase Admin SDK to access Cloud Firestore.
from firebase_admin import initialize_app, firestore
import google.cloud.firestore

app = initialize_app()

ये लाइनें ज़रूरी मॉड्यूल लोड करती हैं और admin ऐप्लिकेशन इंस्टेंस को शुरू करती हैं, जिससे Cloud Firestore में बदलाव किए जा सकते हैं. जहां भी एडमिन SDK सहायता उपलब्ध होती है, वह FCM, पुष्टि, और Firebase रीयल टाइम डेटाबेस के लिए उपलब्ध होती है. यह Cloud Functions का इस्तेमाल करके Firebase को इंटिग्रेट करने का एक बेहतर तरीका उपलब्ध कराती है.

Firebase सीएलआई, प्रोजेक्ट शुरू करने पर Firebase एडमिन SDK और Cloud Functions मॉड्यूल के लिए Firebase SDK टूल को अपने-आप इंस्टॉल करता है. अपने प्रोजेक्ट में तीसरे पक्ष की लाइब्रेरी जोड़ने के बारे में ज़्यादा जानकारी के लिए, डिपेंडेंसी मैनेज करना देखें.

"मैसेज जोड़ें" फ़ंक्शन जोड़ें

"मैसेज जोड़ें" फ़ंक्शन के लिए, अपनी सोर्स फ़ाइल में ये लाइनें जोड़ें:

Node.js के लिए

// Take the text parameter passed to this HTTP endpoint and insert it into
// Firestore under the path /messages/:documentId/original
exports.addmessage = onRequest(async (req, res) => {
  // Grab the text parameter.
  const original = req.query.text;
  // Push the new message into Firestore using the Firebase Admin SDK.
  const writeResult = await getFirestore()
      .collection("messages")
      .add({original: original});
  // Send back a message that we've successfully written the message
  res.json({result: `Message with ID: ${writeResult.id} added.`});
});

Python

@https_fn.on_request()
def addmessage(req: https_fn.Request) -> https_fn.Response:
    """Take the text parameter passed to this HTTP endpoint and insert it into
    a new document in the messages collection."""
    # Grab the text parameter.
    original = req.args.get("text")
    if original is None:
        return https_fn.Response("No text parameter provided", status=400)

    firestore_client: google.cloud.firestore.Client = firestore.client()

    # Push the new message into Cloud Firestore using the Firebase Admin SDK.
    _, doc_ref = firestore_client.collection("messages").add({"original": original})

    # Send back a message that we've successfully written the message
    return https_fn.Response(f"Message with ID {doc_ref.id} added.")

"मैसेज जोड़ें" फ़ंक्शन एक एचटीटीपी एंडपॉइंट है. एंडपॉइंट पर किए जाने वाले किसी भी अनुरोध की वजह से, आपके प्लैटफ़ॉर्म (onRequest() या on_request) के अनुरोध हैंडलर को अनुरोध और रिस्पॉन्स ऑब्जेक्ट भेजा जाता है.

एचटीटीपी फ़ंक्शन सिंक्रोनस होते हैं (कॉल करने लायक फ़ंक्शन की तरह), इसलिए आपको जल्द से जल्द जवाब भेजना चाहिए और Cloud Firestore का इस्तेमाल करके, काम को टाल देना चाहिए. "मैसेज जोड़ें" एचटीटीपी फ़ंक्शन, एचटीटीपी एंडपॉइंट पर एक टेक्स्ट वैल्यू पास करता है और उसे /messages/:documentId/original पाथ के डेटाबेस में डालता है.

"अपरकेस बनाएं" फ़ंक्शन जोड़ें

"अपरकेस बनाएं" फ़ंक्शन के लिए, अपनी सोर्स फ़ाइल में ये लाइनें जोड़ें:

Node.js के लिए

// Listens for new messages added to /messages/:documentId/original
// and saves an uppercased version of the message
// to /messages/:documentId/uppercase
exports.makeuppercase = onDocumentCreated("/messages/{documentId}", (event) => {
  // Grab the current value of what was written to Firestore.
  const original = event.data.data().original;

  // Access the parameter `{documentId}` with `event.params`
  logger.log("Uppercasing", event.params.documentId, original);

  const uppercase = original.toUpperCase();

  // You must return a Promise when performing
  // asynchronous tasks inside a function
  // such as writing to Firestore.
  // Setting an 'uppercase' field in Firestore document returns a Promise.
  return event.data.ref.set({uppercase}, {merge: true});
});

Python

@firestore_fn.on_document_created(document="messages/{pushId}")
def makeuppercase(event: firestore_fn.Event[firestore_fn.DocumentSnapshot | None]) -> None:
    """Listens for new documents to be added to /messages. If the document has
    an "original" field, creates an "uppercase" field containg the contents of
    "original" in upper case."""

    # Get the value of "original" if it exists.
    if event.data is None:
        return
    try:
        original = event.data.get("original")
    except KeyError:
        # No "original" field, so do nothing.
        return

    # Set the "uppercase" field.
    print(f"Uppercasing {event.params['pushId']}: {original}")
    upper = original.upper()
    event.data.reference.update({"uppercase": upper})

"अपरकेस बनाएं" फ़ंक्शन तब काम करता है, जब Cloud Firestore को लिखा जाता है और वह दस्तावेज़ तय करता है, जिसे सुनना है. परफ़ॉर्मेंस की वजह से, आपको जितना हो सके, सटीक जानकारी देनी चाहिए.

ब्रेसेस—उदाहरण के लिए, {documentId}—"पैरामीटर" वाइल्डकार्ड, जो कॉलबैक में अपना मिलता-जुलता डेटा दिखाता है. जब भी नए मैसेज जोड़े जाते हैं, तो Cloud Firestore कॉलबैक ट्रिगर करता है.

Node.js में, Cloud Firestore इवेंट जैसे इवेंट-ड्रिवन फ़ंक्शन एसिंक्रोनस होते हैं. कॉलबैक फ़ंक्शन को null, ऑब्जेक्ट या प्रॉमिस दिखाना चाहिए. अगर कोई आइटम नहीं लौटाया जाता है, तो फ़ंक्शन का समय खत्म हो जाता है और गड़बड़ी का पता चलता है. इसके बाद, फिर से कोशिश की जाती है. सिंक करना, एक साथ काम नहीं करने वाली प्रोसेस, और प्रॉमिस देखें.

अपने फ़ंक्शन के एक्ज़ीक्यूशन को एम्युलेट करें

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

अपने फ़ंक्शन को एम्युलेट करने के लिए:

  1. firebase emulators:start चलाएं और Emulator Suite यूज़र इंटरफ़ेस (यूआई) के यूआरएल के लिए आउटपुट देखें. यह डिफ़ॉल्ट रूप से localhost:4000 पर सेट होता है. हालांकि, इसे आपके कंप्यूटर पर किसी दूसरे पोर्ट पर होस्ट किया जा सकता है. एम्युलेटर सुइट का यूज़र इंटरफ़ेस (यूआई) खोलने के लिए, उस यूआरएल को अपने ब्राउज़र में डालें.

  2. एचटीटीपी फ़ंक्शन के यूआरएल के लिए, firebase emulators:start कमांड का आउटपुट देखें. यह http://localhost:5001/MY_PROJECT/us-central1/addMessage जैसा दिखेगा. हालांकि, इसमें ये चीज़ें शामिल नहीं होंगी:

    1. MY_PROJECT को आपके प्रोजेक्ट आईडी से बदल दिया जाएगा.
    2. आपके कंप्यूटर पर पोर्ट अलग हो सकता है.
  3. फ़ंक्शन के यूआरएल के आखिर में ?text=uppercaseme क्वेरी स्ट्रिंग जोड़ें. यह कुछ ऐसा दिखेगा: http://localhost:5001/MY_PROJECT/us-central1/addMessage?text=uppercaseme. इसके अलावा, आपके पास "अपरकेसमे" मैसेज को पसंद के मुताबिक बनाए गए मैसेज में बदलने का विकल्प भी है.

  4. यूआरएल को अपने ब्राउज़र के नए टैब में खोलकर, एक नया मैसेज बनाएं.

  5. एम्युलेटर सुइट यूज़र इंटरफ़ेस (यूआई) में फ़ंक्शन के असर देखें:

    1. लॉग टैब में, आपको यह बताने वाले नए लॉग दिखेंगे कि आपके एचटीटीपी फ़ंक्शन सही तरीके से चले हैं:

      i functions: Beginning execution of "addMessage"

      i functions: Beginning execution of "makeUppercase"

    2. फ़ायर स्टोर टैब में, आपको एक दस्तावेज़ दिखेगा, जिसमें आपके मूल मैसेज के साथ-साथ आपके मैसेज का बड़ा किया हुआ वर्शन भी होगा (अगर वह मूल रूप से "अपरकेसमे" था, तो आपको "अपरकेसमे" दिखेगा.

प्रोडक्शन एनवायरमेंट में फ़ंक्शन डिप्लॉय करना

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

ट्यूटोरियल को पूरा करने के लिए, अपने फ़ंक्शन डिप्लॉय करें और फिर उन्हें एक्ज़ीक्यूट करें.

  1. अपने फ़ंक्शन को डिप्लॉय करने के लिए, इस कमांड को चलाएं:

     firebase deploy --only functions
     

    इस निर्देश को चलाने के बाद, Firebase सीएलआई किसी भी एचटीटीपी फ़ंक्शन के एंडपॉइंट के लिए यूआरएल जनरेट करता है. अपने टर्मिनल में, आपको इस तरह की एक लाइन दिखेगी:

    Function URL (addMessage): https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage
    

    यूआरएल में आपका प्रोजेक्ट आईडी और एचटीटीपी फ़ंक्शन के लिए क्षेत्र की जानकारी होती है. आपको इसकी चिंता करने की ज़रूरत नहीं है. हालांकि, नेटवर्क के इंतज़ार में लगने वाले समय को कम करने के लिए, कुछ प्रोडक्शन एचटीटीपी फ़ंक्शन को जगह की जानकारी तय करनी चाहिए.

    अगर आपको ऐक्सेस की गड़बड़ियां मिलती हैं, जैसे कि "प्रोजेक्ट का ऐक्सेस नहीं दिया जा सका," तो अपने प्रोजेक्ट एलियासिंग की जांच करें.

  2. सीएलआई के यूआरएल आउटपुट का इस्तेमाल करके, एक टेक्स्ट क्वेरी पैरामीटर जोड़ें और उसे ब्राउज़र में खोलें:

    https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage?text=uppercasemetoo
    

    यह फ़ंक्शन ब्राउज़र को एक्ज़ीक्यूट करता है और डेटाबेस की उस लोकेशन पर 'Firebase कंसोल' पर रीडायरेक्ट करता है जहां टेक्स्ट स्ट्रिंग सेव होती है. इस राइट इवेंट से "अपरकेस बनाएं" फ़ंक्शन ट्रिगर होता है, जो स्ट्रिंग का अपरकेस वर्शन लिखता है.

फ़ंक्शन को डिप्लॉय और लागू करने के बाद, Google Cloud Console में लॉग देखे जा सकते हैं. अगर आपको डेवलपमेंट या प्रोडक्शन में फ़ंक्शन मिटाने हैं, तो Firebase सीएलआई का इस्तेमाल करें.

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

अगले चरण

इस दस्तावेज़ में, Cloud Functions के लिए फ़ंक्शन मैनेज करने के तरीके और Cloud Functions के साथ काम करने वाले सभी इवेंट टाइप को मैनेज करने के तरीके के बारे में ज़्यादा जानकारी दी गई है.

Cloud Functions के बारे में ज़्यादा जानने के लिए, आपको ये काम भी करने पड़ सकते हैं: