आरंभ करें: अपने पहले फ़ंक्शन लिखें, परीक्षण करें और तैनात करें


क्लाउड फ़ंक्शंस के साथ आरंभ करने के लिए, इस ट्यूटोरियल के माध्यम से काम करने का प्रयास करें, जो आवश्यक सेटअप कार्यों से शुरू होता है और दो संबंधित फ़ंक्शंस बनाने, परीक्षण और तैनात करने के माध्यम से काम करता है:

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

यहां पूर्ण नमूना कोड है जिसमें फ़ंक्शंस शामिल हैं:

नोड.जे.एस

// 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});
});

अजगर

# 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})

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

हमने इस नमूने के लिए आंशिक रूप से क्लाउड फायरस्टोर और HTTP-ट्रिगर फ़ंक्शन को चुना है क्योंकि इन पृष्ठभूमि ट्रिगर्स को फायरबेस लोकल एमुलेटर सूट के माध्यम से पूरी तरह से परीक्षण किया जा सकता है। यह टूलसेट रियलटाइम डेटाबेस, क्लाउड स्टोरेज, पबसब, ऑथ और HTTP कॉलेबल ट्रिगर्स को भी सपोर्ट करता है। अन्य प्रकार के बैकग्राउंड ट्रिगर्स जैसे रिमोट कॉन्फिग और टेस्टलैब ट्रिगर्स का इस पृष्ठ में वर्णित टूलसेट का उपयोग करके इंटरैक्टिव परीक्षण किया जा सकता है।

इस ट्यूटोरियल के निम्नलिखित अनुभाग नमूना बनाने, परीक्षण करने और तैनात करने के लिए आवश्यक चरणों का विवरण देते हैं।

एक फायरबेस प्रोजेक्ट बनाएं

  1. फायरबेस कंसोल में, प्रोजेक्ट जोड़ें पर क्लिक करें।

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

    • एक नया प्रोजेक्ट बनाने के लिए, वांछित प्रोजेक्ट नाम दर्ज करें। आप वैकल्पिक रूप से प्रोजेक्ट नाम के नीचे प्रदर्शित प्रोजेक्ट आईडी को संपादित भी कर सकते हैं।

  2. यदि संकेत दिया जाए, तो फायरबेस शर्तों की समीक्षा करें और स्वीकार करें।

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

  4. (वैकल्पिक) अपने प्रोजेक्ट के लिए Google Analytics सेट करें, जो आपको निम्नलिखित फायरबेस उत्पादों में से किसी का उपयोग करके इष्टतम अनुभव प्राप्त करने में सक्षम बनाता है:

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

    यदि आप एक नया खाता बनाते हैं, तो अपना Analytics रिपोर्टिंग स्थान चुनें, फिर अपने प्रोजेक्ट के लिए डेटा साझाकरण सेटिंग और Google Analytics शर्तें स्वीकार करें।

  5. प्रोजेक्ट बनाएं पर क्लिक करें (या यदि आप मौजूदा Google क्लाउड प्रोजेक्ट का उपयोग कर रहे हैं तो फायरबेस जोड़ें )।

फायरबेस स्वचालित रूप से आपके फायरबेस प्रोजेक्ट के लिए संसाधनों का प्रावधान करता है। जब प्रक्रिया पूरी हो जाएगी, तो आपको फ़ायरबेस कंसोल में आपके फ़ायरबेस प्रोजेक्ट के अवलोकन पृष्ठ पर ले जाया जाएगा।

अपना परिवेश और फायरबेस सीएलआई सेट करें

नोड.जे.एस

फ़ंक्शंस लिखने के लिए आपको एक Node.js वातावरण की आवश्यकता होगी, और क्लाउड फ़ंक्शंस रनटाइम पर फ़ंक्शंस को तैनात करने के लिए आपको फ़ायरबेस सीएलआई की आवश्यकता होगी। Node.js और npm स्थापित करने के लिए, नोड संस्करण प्रबंधक की अनुशंसा की जाती है।

एक बार जब आपके पास Node.js और npm इंस्टॉल हो जाए, तो अपने पसंदीदा तरीके से फायरबेस CLI इंस्टॉल करें । एनपीएम के माध्यम से सीएलआई स्थापित करने के लिए, इसका उपयोग करें:

npm install -g firebase-tools

यह विश्व स्तर पर उपलब्ध फायरबेस कमांड स्थापित करता है। यदि आदेश विफल हो जाता है, तो आपको npm अनुमतियाँ बदलने की आवश्यकता हो सकती है। firebase-tools के नवीनतम संस्करण में अपडेट करने के लिए, उसी कमांड को दोबारा चलाएँ।

अजगर

फ़ंक्शंस लिखने के लिए आपको पायथन वातावरण की आवश्यकता होगी, और क्लाउड फ़ंक्शंस रनटाइम पर फ़ंक्शंस को तैनात करने के लिए आपको फ़ायरबेस सीएलआई की आवश्यकता होगी। हम निर्भरता को अलग करने के लिए venv उपयोग करने की सलाह देते हैं। पायथन संस्करण 3.10 और 3.11 समर्थित हैं।

एक बार जब आप पायथन इंस्टॉल कर लें, तो अपनी पसंदीदा विधि के माध्यम से फायरबेस सीएलआई इंस्टॉल करें

अपना प्रोजेक्ट प्रारंभ करें

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

अपना प्रोजेक्ट प्रारंभ करने के लिए:

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

    • जावास्क्रिप्ट
    • टाइपप्रति
    • अजगर

    इस ट्यूटोरियल के लिए, जावास्क्रिप्ट या पायथन का चयन करें। टाइपस्क्रिप्ट में लेखन के लिए, टाइपस्क्रिप्ट के साथ फ़ंक्शन लिखें देखें।

  6. सीएलआई आपको निर्भरता स्थापित करने का विकल्प देता है। यदि आप निर्भरता को दूसरे तरीके से प्रबंधित करना चाहते हैं तो इसे अस्वीकार करना सुरक्षित है।

इन आदेशों के सफलतापूर्वक पूरा होने के बाद, आपकी परियोजना संरचना इस तरह दिखती है:

नोड.जे.एस

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 संस्करण को निर्दिष्ट करता है। आप अन्य समर्थित संस्करण चुन सकते हैं.

अजगर

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

आवश्यक मॉड्यूल आयात करें और एक ऐप प्रारंभ करें

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

नोड.जे.एस

// 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();

अजगर

# 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 ऐप इंस्टेंस को इनिशियलाइज़ करती हैं जिससे क्लाउड फायरस्टोर में बदलाव किए जा सकते हैं। जहां भी एडमिन एसडीके समर्थन उपलब्ध है, जैसे कि यह एफसीएम, प्रमाणीकरण और फायरबेस रीयलटाइम डेटाबेस के लिए है, यह क्लाउड फ़ंक्शंस का उपयोग करके फायरबेस को एकीकृत करने का एक शक्तिशाली तरीका प्रदान करता है।

जब आप अपना प्रोजेक्ट प्रारंभ करते हैं तो फायरबेस सीएलआई स्वचालित रूप से क्लाउड फ़ंक्शंस मॉड्यूल के लिए फायरबेस एडमिन एसडीके और फायरबेस एसडीके स्थापित करता है। अपने प्रोजेक्ट में तृतीय पक्ष लाइब्रेरी जोड़ने के बारे में अधिक जानकारी के लिए, हैंडल डिपेंडेंसीज़ देखें।

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

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

नोड.जे.एस

// 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.`});
});

अजगर

@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.")

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

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

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

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

नोड.जे.एस

// 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});
});

अजगर

@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})

जब क्लाउड फायरस्टोर को लिखा जाता है तो "मेक अपरकेस" फ़ंक्शन निष्पादित होता है, जो सुनने के लिए दस्तावेज़ को परिभाषित करता है। प्रदर्शन कारणों से, आपको यथासंभव विशिष्ट होना चाहिए।

ब्रेसिज़—उदाहरण के लिए, {documentId} —सराउंड "पैरामीटर," वाइल्डकार्ड जो कॉलबैक में उनके मिलान किए गए डेटा को उजागर करते हैं। जब भी नए संदेश जोड़े जाते हैं तो क्लाउड फायरस्टोर कॉलबैक ट्रिगर कर देता है।

Node.js में, क्लाउड फायरस्टोर इवेंट जैसे इवेंट-संचालित फ़ंक्शन अतुल्यकालिक हैं। कॉलबैक फ़ंक्शन को या तो null , ऑब्जेक्ट, या Promise लौटाना चाहिए। यदि आप कुछ भी नहीं लौटाते हैं, तो फ़ंक्शन का समय समाप्त हो जाता है, एक त्रुटि का संकेत मिलता है, और पुनः प्रयास किया जाता है। सिंक, एसिंक और प्रॉमिस देखें।

अपने कार्यों के निष्पादन का अनुकरण करें

फायरबेस लोकल एमुलेटर सूट आपको फायरबेस प्रोजेक्ट पर तैनात करने के बजाय अपनी स्थानीय मशीन पर ऐप्स बनाने और परीक्षण करने की अनुमति देता है। विकास के दौरान स्थानीय परीक्षण की दृढ़ता से अनुशंसा की जाती है, क्योंकि यह कोडिंग त्रुटियों से होने वाले जोखिम को कम करता है जो संभावित रूप से उत्पादन वातावरण में लागत का कारण बन सकता है (उदाहरण के लिए, एक अनंत लूप)।

अपने कार्यों का अनुकरण करने के लिए:

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

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

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

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

  5. एम्यूलेटर सुइट यूआई में फ़ंक्शन के प्रभाव देखें:

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

      i functions: Beginning execution of "addMessage"

      i functions: Beginning execution of "makeUppercase"

    2. फायरस्टोर टैब में, आपको एक दस्तावेज़ देखना चाहिए जिसमें आपका मूल संदेश और साथ ही आपके संदेश का अपरकेस संस्करण शामिल है (यदि यह मूल रूप से "अपरकेसमे" था, तो आपको "अपरकेसमे" दिखाई देगा)।

उत्पादन परिवेश में फ़ंक्शन परिनियोजित करें

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

ट्यूटोरियल को पूरा करने के लिए, अपने फ़ंक्शंस को तैनात करें और फिर उन्हें निष्पादित करें।

  1. अपने कार्यों को तैनात करने के लिए यह आदेश चलाएँ:

     firebase deploy --only functions
     

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

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

    यूआरएल में आपकी प्रोजेक्ट आईडी के साथ-साथ HTTP फ़ंक्शन के लिए एक क्षेत्र भी शामिल है। हालाँकि अब आपको इसके बारे में चिंता करने की ज़रूरत नहीं है, कुछ उत्पादन HTTP फ़ंक्शंस को नेटवर्क विलंबता को कम करने के लिए एक स्थान निर्दिष्ट करना चाहिए।

    यदि आपको "प्रोजेक्ट तक पहुंच को अधिकृत करने में असमर्थ" जैसी एक्सेस त्रुटियों का सामना करना पड़ता है, तो अपने प्रोजेक्ट एलियासिंग की जांच करने का प्रयास करें।

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

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

    फ़ंक्शन ब्राउज़र को डेटाबेस स्थान पर फ़ायरबेस कंसोल पर निष्पादित और रीडायरेक्ट करता है जहां टेक्स्ट स्ट्रिंग संग्रहीत है। यह लिखने की घटना "मेक अपरकेस" फ़ंक्शन को ट्रिगर करती है, जो स्ट्रिंग का एक अपरकेस संस्करण लिखती है।

फ़ंक्शंस को तैनात करने और निष्पादित करने के बाद, आप Google क्लाउड कंसोल में लॉग देख सकते हैं। यदि आपको विकास या उत्पादन में कार्यों को हटाने की आवश्यकता है, तो फायरबेस सीएलआई का उपयोग करें।

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

अगले कदम

इस दस्तावेज़ में, आप क्लाउड फ़ंक्शंस के लिए फ़ंक्शंस को प्रबंधित करने के तरीके के साथ-साथ क्लाउड फ़ंक्शंस द्वारा समर्थित सभी ईवेंट प्रकारों को कैसे प्रबंधित करें, इसके बारे में अधिक जान सकते हैं।

क्लाउड फ़ंक्शंस के बारे में अधिक जानने के लिए, आप निम्न कार्य भी कर सकते हैं: