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


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

  • ฟังก์ชัน "เพิ่มข้อความ" ที่แสดง URL ที่ยอมรับค่าข้อความและเขียนไปยัง 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 และฟังก์ชันที่ทริกเกอร์ HTTP สำหรับตัวอย่างนี้ส่วนหนึ่งเนื่องจากทริกเกอร์พื้นหลังเหล่านี้ได้รับการทดสอบอย่างละเอียดผ่านชุดโปรแกรมจำลองภายในของ Firebase ชุดเครื่องมือนี้ยังรองรับทริกเกอร์ฐานข้อมูลเรียลไทม์, Cloud Storage, PubSub, การตรวจสอบสิทธิ์ และทริกเกอร์ที่เรียกใช้ได้ของ HTTP ด้วย ทริกเกอร์พื้นหลังประเภทอื่นๆ เช่น ทริกเกอร์การกำหนดค่าระยะไกลและทริกเกอร์ 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.js และ npm แล้ว ให้ติดตั้ง Firebase CLI ผ่านวิธีการที่ต้องการ หากต้องการติดตั้ง CLI ผ่าน npm ให้ใช้:

npm install -g firebase-tools

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

Python

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

เมื่อติดตั้ง Python แล้ว ให้ติดตั้ง Firebase CLI ผ่านวิธีการที่ต้องการ

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

เมื่อเริ่ม Firebase SDK สำหรับฟังก์ชันระบบคลาวด์ คุณจะสร้างโปรเจ็กต์ว่างที่มีทรัพยากร 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 ด้วยวิธีอื่น

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

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 พร้อมให้บริการ เช่นเดียวกับ FCM, การตรวจสอบสิทธิ์ และฐานข้อมูลเรียลไทม์ของ Firebase ฟีเจอร์ดังกล่าวจะมอบวิธีที่มีประสิทธิภาพในการผสานรวม Firebase โดยใช้ฟังก์ชันระบบคลาวด์

Firebase CLI จะติดตั้งโมดูล 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.")

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

ฟังก์ชัน HTTP ทำงานพร้อมกัน (คล้ายกับฟังก์ชันที่เรียกได้) คุณจึงควรส่งการตอบกลับโดยเร็วที่สุดและเลื่อนเวลาการทำงานโดยใช้ Cloud Firestore ฟังก์ชัน HTTP "เพิ่มข้อความ" จะส่งค่าข้อความไปยังปลายทาง HTTP และแทรกลงในฐานข้อมูลภายใต้เส้นทาง /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} ล้อมรอบ "พารามิเตอร์" ซึ่งเป็นไวลด์การ์ดที่แสดงข้อมูลที่ตรงกันใน Callback Cloud Firestore จะเรียกใช้ Callback เมื่อมีการเพิ่มข้อความใหม่

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

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

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

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

  1. เรียกใช้ firebase emulators:start และตรวจสอบเอาต์พุตสำหรับ URL ของ UI ของชุดโปรแกรมจำลอง โดยมีค่าเริ่มต้นเป็น localhost:4000 แต่อาจโฮสต์ในพอร์ตอื่นในเครื่องของคุณ โดยป้อน URL ดังกล่าวในเบราว์เซอร์เพื่อเปิด 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 หรือจะเปลี่ยนข้อความ "ตัวพิมพ์ใหญ่" ให้เป็นข้อความที่กำหนดเองก็ได้

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

  5. วิธีดูผลของฟังก์ชันใน 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
     

    หลังจากเรียกใช้คำสั่งนี้ Firebase CLI จะแสดง 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 Console หากต้องการลบฟังก์ชันในการพัฒนาหรือเวอร์ชันที่ใช้งานจริง ให้ใช้ Firebase CLI

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

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

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

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