เริ่มต้นใช้งาน: เขียน ทดสอบ และทำให้ฟังก์ชันแรกใช้งานได้


ในการเริ่มต้นใช้งาน Cloud Functions โปรดลองทำตามบทแนะนำนี้ ซึ่งเริ่มจากงานตั้งค่าที่จำเป็น และผ่านการสร้าง ทดสอบ และการทำให้ฟังก์ชันที่เกี่ยวข้อง 2 รายการใช้งานได้ ได้แก่

  • "เพิ่มข้อความ" ที่แสดง URL ที่ยอมรับค่าข้อความและเขียน ไปยัง Cloud Firestore
  • ฟังก์ชัน "make uppercase" ที่ทริกเกอร์เมื่อมีการเขียน 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 และฟังก์ชันที่ทริกเกอร์ HTTP สำหรับตัวอย่างนี้ส่วนหนึ่งเป็นเพราะทริกเกอร์เบื้องหลังเหล่านี้สามารถทดสอบได้อย่างละเอียดผ่าน Firebase Local Emulator Suite ชุดเครื่องมือนี้ ยังรองรับ Realtime Database, Cloud Storage ทริกเกอร์ PubSub, การตรวจสอบสิทธิ์ และ HTTP ที่เรียกใช้ได้ ทริกเกอร์เบื้องหลังประเภทอื่นๆ เช่น Remote Config และทริกเกอร์ TestLab สามารถทดสอบแบบอินเทอร์แอกทีฟได้โดยใช้ชุดเครื่องมือที่ไม่ได้อธิบายไว้ในหน้านี้

ส่วนต่อไปนี้ของบทแนะนำนี้จะอธิบายขั้นตอนที่จำเป็นในการสร้าง ทดสอบ และทำให้ตัวอย่างใช้งานได้

สร้างโปรเจ็กต์ Firebase

  1. ในคอนโซล Firebase ให้คลิกเพิ่มโปรเจ็กต์

    • หากต้องการเพิ่มทรัพยากร Firebase ลงในโปรเจ็กต์ Google Cloud ที่มีอยู่ ให้ป้อนชื่อโปรเจ็กต์หรือเลือกจากเมนูแบบเลื่อนลง

    • หากต้องการสร้างโปรเจ็กต์ใหม่ ให้ป้อนชื่อโปรเจ็กต์ที่ต้องการ นอกจากนี้ คุณยังแก้ไขรหัสโปรเจ็กต์ที่แสดงใต้ชื่อโปรเจ็กต์ได้ด้วย

  2. หากได้รับข้อความแจ้ง ให้ตรวจสอบและยอมรับข้อกำหนดของ Firebase

  3. คลิกต่อไป

  4. (ไม่บังคับ) ตั้งค่า Google Analytics ให้กับโครงการ ซึ่งจะทำให้คุณสามารถ เพื่อรับประสบการณ์ที่ดีที่สุดโดยใช้ผลิตภัณฑ์ Firebase ต่อไปนี้

    เลือกบัญชี Google Analytics ที่มีอยู่หรือสร้างบัญชีใหม่

    หากคุณสร้างบัญชีใหม่ ให้เลือก มี Analytics สถานที่ที่รายงาน จากนั้นยอมรับ การตั้งค่าการแชร์ข้อมูลและGoogle Analyticsข้อกำหนดของโปรเจ็กต์

  5. คลิกสร้างโปรเจ็กต์ (หรือเพิ่ม Firebase หากใช้ โปรเจ็กต์ Google Cloud ที่มีอยู่)

Firebase จะจัดสรรทรัพยากรให้กับโปรเจ็กต์ Firebase โดยอัตโนมัติ เมื่อกระบวนการเสร็จสมบูรณ์แล้ว ระบบจะนำคุณไปยังหน้าภาพรวมของโปรเจ็กต์ Firebase ในคอนโซล Firebase

ตั้งค่าสภาพแวดล้อมและ Firebase CLI

Node.js

คุณจะต้องมีสภาพแวดล้อม Node.js เพื่อเขียนฟังก์ชัน และจะต้องมี Firebase CLI เพื่อทำให้ฟังก์ชันใช้งานได้ในรันไทม์ Cloud Functions สําหรับการติดตั้ง Node.js และ npm เราขอแนะนําให้ใช้ Node Version Manager

เมื่อติดตั้ง Node.js และ npm แล้ว ให้ติดตั้ง Firebase CLI ผ่านวิธีที่คุณต้องการ หากต้องการติดตั้ง CLI ผ่าน npm ให้ใช้คำสั่งต่อไปนี้

npm install -g firebase-tools

ซึ่งจะติดตั้งคําสั่ง firebase ที่พร้อมใช้งานทั่วโลก หากใช้คำสั่งไม่สำเร็จ คุณอาจต้องเปลี่ยนสิทธิ์ npm หากต้องการอัปเดต firebase-tools เป็นเวอร์ชันล่าสุด ให้เรียกใช้คําสั่งเดิมอีกครั้ง

Python

คุณจะต้องมีสภาพแวดล้อม Python เพื่อเขียนฟังก์ชัน และจะต้องมี Firebase CLI เพื่อทำให้ฟังก์ชันใช้งานได้ในรันไทม์ Cloud Functions เราขอแนะนำให้ใช้ venv เพื่อแยกการพึ่งพา ระบบรองรับ Python เวอร์ชัน 3.10 และ 3.11

เมื่อคุณติดตั้ง Python แล้ว ติดตั้ง Firebase CLI ด้วยวิธีที่คุณต้องการ

เริ่มต้นโปรเจ็กต์

การเริ่มต้น Firebase SDK สำหรับ Cloud Functions จะเป็นการสร้างโปรเจ็กต์ที่ว่างเปล่า ที่มีทรัพยากร Dependency และโค้ดตัวอย่างขั้นต่ำบางส่วน หากใช้ Node.js คุณจะเลือก TypeScript หรือ JavaScript ในการเขียนฟังก์ชันก็ได้ เพื่อจุดประสงค์ของกรณีนี้ บทแนะนำ คุณจะต้องเริ่มต้น Cloud Firestore ด้วย

วิธีเริ่มต้นโปรเจ็กต์

  1. เรียกใช้ firebase login เพื่อเข้าสู่ระบบผ่านเบราว์เซอร์และตรวจสอบสิทธิ์ Firebase CLI
  2. ไปที่ไดเรกทอรีโปรเจ็กต์ Firebase
  3. เรียกใช้ firebase init firestore ในบทแนะนํานี้ คุณสามารถยอมรับค่าเริ่มต้นเมื่อระบบแจ้งให้ระบุกฎและไฟล์ดัชนีของ Firestore หากยังไม่ได้ใช้ Cloud Firestore ในโปรเจ็กต์นี้ คุณจะต้องเลือกโหมดเริ่มต้นและตำแหน่งสำหรับ Firestore ด้วยตามที่อธิบายไว้ในเริ่มต้นใช้งาน Cloud Firestore
  4. เรียกใช้ firebase init functions CLI จะแจ้งให้คุณเลือกฐานโค้ดที่มีอยู่ หรือเริ่มต้นและตั้งชื่อฐานโค้ดใหม่ ตอนที่เพิ่งเริ่มต้น แค่โค้ดเบสเดียวในตำแหน่งเริ่มต้นก็เพียงพอแล้ว เมื่อมีการขยายการใช้งาน คุณอาจ ต้องการจัดระเบียบฟังก์ชันในโค้ดเบส
  5. CLI มีตัวเลือกต่อไปนี้สำหรับการสนับสนุนภาษา

    • JavaScript
    • TypeScript
    • Python

    สำหรับบทแนะนํานี้ ให้เลือก JavaScript หรือ Python สำหรับการเขียนใน TypeScript ได้ที่หัวข้อเขียนฟังก์ชันด้วย TypeScript

  6. CLI มีตัวเลือกให้คุณติดตั้ง Dependency คุณปฏิเสธได้หากต้องการจัดการทรัพยากร Dependency ด้วยวิธีอื่น

หลังจากคำสั่งเหล่านี้เสร็จสมบูรณ์ โครงสร้างโปรเจ็กต์จะมีลักษณะ ดังนี้

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 และ Admin 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 ได้ Admin SDK เป็นวิธีที่มีประสิทธิภาพในการผสานรวม Firebase โดยใช้ Cloud Functions ในทุกที่ที่รองรับ เช่นเดียวกับที่รองรับใน FCM, Authentication และ Firebase Realtime Database

CLI ของ Firebase โดยอัตโนมัติ ติดตั้ง Firebase Admin SDK และ Firebase SDK สำหรับโมดูล Cloud Functions เมื่อคุณเริ่มต้น โปรเจ็กต์ของคุณ ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มไลบรารีของบุคคลที่สามลงในโปรเจ็กต์ได้ที่หัวข้อจัดการ Dependency

ใส่ "เพิ่มข้อความ" ฟังก์ชัน

สำหรับ "เพิ่มข้อความ" ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ต้นฉบับ

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

ฟังก์ชัน "add message" คือปลายทาง HTTP คำขอที่ส่งไปยังปลายทาง ผลลัพธ์ในออบเจ็กต์คำขอและการตอบสนองที่ส่งไปยัง เครื่องจัดการคำขอสำหรับแพลตฟอร์มของคุณ (onRequest() หรือ on_request)

ฟังก์ชัน HTTP เป็นการทำงานแบบซิงค์ (คล้ายกับฟังก์ชันที่เรียกใช้ได้) คุณจึงควรส่งการตอบกลับโดยเร็วที่สุดและเลื่อนการทำงานโดยใช้ Cloud Firestore ฟังก์ชัน HTTP "add message" จะส่งค่าข้อความไปยังปลายทาง HTTP และแทรกลงในฐานข้อมูลตามเส้นทาง /messages/:documentId/original

เพิ่มฟังก์ชัน "make uppercase"

สําหรับฟังก์ชัน "make uppercase" ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ต้นฉบับ

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

ฟังก์ชัน "make uppercase" จะทำงานเมื่อมีการเขียนลงใน Cloud Firestore ซึ่งจะกำหนดเอกสารที่จะฟัง คุณควรระบุข้อมูลให้เฉพาะเจาะจงที่สุดเพื่อเหตุผลด้านประสิทธิภาพ

วงเล็บ เช่น {documentId} จะล้อมรอบ "พารามิเตอร์" ซึ่งเป็นไวลด์การ์ดที่แสดงข้อมูลที่ตรงกันในคอลแบ็ก Cloud Firestore ทริกเกอร์ ติดต่อกลับเมื่อมีการเพิ่มข้อความใหม่

ใน Node.js ฟังก์ชันที่ขับเคลื่อนด้วยเหตุการณ์ เช่น เหตุการณ์ Cloud Firestore จะ ไม่พร้อมกัน ฟังก์ชัน Callback ควรแสดงผล null ซึ่งเป็นออบเจ็กต์ หรือคำมั่นสัญญา หากคุณไม่ส่งคืนสิ่งใด ฟังก์ชันจะหมดเวลา ซึ่งเป็นการส่งสัญญาณข้อผิดพลาด และ ลองอีกครั้ง โปรดดูการซิงค์ การทำงานแบบไม่พร้อมกัน และ Promise

จําลองการดําเนินการของฟังก์ชัน

Firebase Local Emulator Suite จะช่วยให้คุณสร้างและทดสอบแอปบนเครื่องของคุณแทนการทำให้ใช้งานได้ โปรเจ็กต์ Firebase เราขอแนะนําอย่างยิ่งให้ทําการทดสอบในเครื่องระหว่างการพัฒนาส่วนหนึ่งเนื่องจากช่วยลดความเสี่ยงจากข้อผิดพลาดในการเขียนโค้ดที่อาจก่อให้เกิดค่าใช้จ่ายในสภาพแวดล้อมการทํางานจริง (เช่น ลูปที่ไม่มีที่สิ้นสุด)

วิธีจำลองฟังก์ชัน

  1. เรียกใช้ firebase emulators:start และตรวจสอบเอาต์พุตสำหรับ URL ของ Emulator Suite UI โดยมีค่าเริ่มต้นเป็น localhost:4000 แต่อาจโฮสต์ใน พอร์ตบนเครื่องของคุณ ให้ป้อน URL นั้นในเบราว์เซอร์เพื่อเปิด Emulator Suite UI

  2. ตรวจสอบเอาต์พุตของ firebase emulators:start คำสั่งสำหรับ URL ของฟังก์ชัน HTTP ซึ่งจะมีลักษณะคล้ายกับ http://localhost:5001/MY_PROJECT/us-central1/addMessage ยกเว้น

    1. MY_PROJECT จะแทนที่ด้วยรหัสโปรเจ็กต์ของคุณ
    2. พอร์ตอาจแตกต่างออกไปในเครื่องของคุณ
  3. เพิ่มสตริงการค้นหา ?text=uppercaseme ต่อท้าย URL ของฟังก์ชัน ซึ่งควรมีลักษณะดังนี้ http://localhost:5001/MY_PROJECT/us-central1/addMessage?text=uppercaseme คุณเปลี่ยนข้อความ "uppercaseme" เป็นข้อความที่กำหนดเองได้ (ไม่บังคับ)

  4. สร้างข้อความใหม่โดยเปิด URL ในแท็บใหม่ในเบราว์เซอร์

  5. ดูผลของฟังก์ชันใน Emulator Suite UI

    1. ในแท็บบันทึก คุณควรเห็นบันทึกใหม่ระบุว่าฟังก์ชัน HTTP ทำงานสําเร็จ

      i functions: Beginning execution of "addMessage"

      i functions: Beginning execution of "makeUppercase"

    2. ในแท็บ Firestore คุณควรเห็นเอกสารที่มีเอกสารต้นฉบับ รวมทั้งข้อความในเวอร์ชันตัวพิมพ์ใหญ่ (หากเป็น แต่เดิมคุณจะเห็น "ตัวพิมพ์ใหญ่" คุณจะเห็น "ตัวพิมพ์ใหญ่")

ทำให้ฟังก์ชันใช้งานได้ในสภาพแวดล้อมที่ใช้งานจริง

เมื่อฟังก์ชันทํางานตามที่คาดไว้ในโปรแกรมจําลองแล้ว คุณสามารถดําเนินการต่อด้วยการทําให้ใช้งานได้จริง การทดสอบ และเรียกใช้ฟังก์ชันดังกล่าวในสภาพแวดล้อมที่ใช้งานจริง โปรดทราบ ที่จะทำให้ใช้งานได้ในเวอร์ชันที่ใช้งานจริง โปรเจ็กต์ของคุณ ต้องอยู่ในแพ็กเกจราคา Blaze ดูราคา Cloud Functions

หากต้องการจบบทแนะนำ ให้ติดตั้งใช้งานฟังก์ชันแล้วเรียกใช้ ให้พวกเขา

  1. เรียกใช้คำสั่งนี้เพื่อทำให้ฟังก์ชันใช้งานได้:

     firebase deploy --only functions
     

    หลังจากเรียกใช้คำสั่งนี้ CLI ของ Firebase จะแสดงผล URL สำหรับ ฟังก์ชัน HTTP ปลายทาง คุณควรเห็นบรรทัดต่อไปนี้ในเทอร์มินัล

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

    URL ดังกล่าวจะมีรหัสโปรเจ็กต์และภูมิภาคของฟังก์ชัน HTTP แม้คุณจะไม่ต้องกังวลในตอนนี้ แต่ HTTP เวอร์ชันที่ใช้งานจริงบางรายการ ควรระบุตำแหน่งเพื่อ เพื่อลดเวลาในการตอบสนองของเครือข่าย

    หากคุณพบข้อผิดพลาดในการเข้าถึง เช่น "ไม่สามารถให้สิทธิ์เข้าถึง โครงการ" ให้ลองตรวจสอบชื่อแทนโปรเจ็กต์

  2. ใช้เอาต์พุต URL ที่ CLI แสดงผล เพิ่มพารามิเตอร์การค้นหาที่เป็นข้อความ และเปิดในเบราว์เซอร์

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

    ฟังก์ชันจะทำงานและเปลี่ยนเส้นทางเบราว์เซอร์ไปยังFirebaseคอนโซลที่ตำแหน่งฐานข้อมูลซึ่งเก็บสตริงข้อความ ช่วงเวลานี้ การเขียนเหตุการณ์จะทริกเกอร์ "ทำให้เป็นตัวพิมพ์ใหญ่" ซึ่งเขียนเป็นตัวพิมพ์ใหญ่ ของสตริงนี้

หลังจากทำให้ใช้งานได้และเรียกใช้ฟังก์ชันแล้ว คุณจะทำสิ่งต่อไปนี้ได้ ดูบันทึกในคอนโซลของ Google Cloud หากต้องการลบฟังก์ชัน ในการพัฒนาซอฟต์แวร์หรือเวอร์ชันที่ใช้งานจริง ให้ใช้ Firebase CLI

ในเวอร์ชันที่ใช้งานจริง คุณอาจต้องเพิ่มประสิทธิภาพและการควบคุมฟังก์ชัน โดยการตั้งค่าจำนวนอินสแตนซ์ขั้นต่ำและสูงสุดที่จะเรียกใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกรันไทม์เหล่านี้ได้ที่หัวข้อควบคุมลักษณะการการปรับขนาด

ขั้นตอนถัดไป

ในเอกสารนี้ คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับวิธี จัดการฟังก์ชันสำหรับ Cloud Functions รวมถึงวิธี เพื่อจัดการเหตุการณ์ทุกประเภทที่ Cloud Functions รองรับ

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับ Cloud Functions คุณ ยังสามารถทำสิ่งต่างๆ ดังต่อไปนี้: