برای شروع کار با Cloud Functions ، این آموزش را امتحان کنید که با وظایف راهاندازی مورد نیاز شروع میشود و از طریق ایجاد، آزمایش و استقرار دو تابع مرتبط ادامه مییابد:
- یک تابع «افزودن پیام» که یک URL را نمایش میدهد که یک مقدار متنی را میپذیرد و آن را در Cloud Firestore مینویسد.
- یک تابع «make uppercase» که روی یک Cloud Firestore اجرا میشود و متن را به حروف بزرگ تبدیل میکند.
در اینجا کد نمونه کامل شامل توابع آمده است:
نود جی اس
// The Cloud Functions for Firebase SDK to create Cloud Functions and triggers.
const {logger} = require("firebase-functions");
const {onRequest} = require("firebase-functions/https");
const {onDocumentCreated} = require("firebase-functions/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})
درباره این آموزش
ما توابع Cloud Firestore و HTTP-triggered را برای این نمونه انتخاب کردهایم، زیرا این محرکهای پسزمینه را میتوان به طور کامل از طریق Firebase Local Emulator Suite آزمایش کرد. این مجموعه ابزار همچنین از Realtime Database ، Cloud Storage ، PubSub، Auth و محرکهای قابل فراخوانی HTTP پشتیبانی میکند. انواع دیگر محرکهای پسزمینه مانند Remote Config و TestLab را میتوان به صورت تعاملی با استفاده از مجموعه ابزارهایی که در این صفحه توضیح داده نشدهاند، آزمایش کرد .
بخشهای بعدی این آموزش، مراحل مورد نیاز برای ساخت، آزمایش و استقرار نمونه را شرح میدهند.
ایجاد یک پروژه فایربیس
تازه وارد فایربیس یا کلود شدهاید
اگر در استفاده از Firebase یا Google Cloud تازهکار هستید، این مراحل را دنبال کنید.
همچنین اگر میخواهید یک پروژه Firebase کاملاً جدید (و پروژه Google Cloud زیربنایی آن) ایجاد کنید، میتوانید این مراحل را دنبال کنید.
- وارد کنسول Firebase شوید.
- برای ایجاد یک پروژه جدید Firebase، روی دکمه کلیک کنید.
در فیلد متن، نام پروژه را وارد کنید.
اگر عضوی از یک سازمان Google Cloud هستید، میتوانید به صورت اختیاری انتخاب کنید که پروژه خود را در کدام پوشه ایجاد کنید.
- در صورت درخواست، شرایط Firebase را مرور و قبول کنید، سپس روی ادامه کلیک کنید.
- (اختیاری) دستیار هوش مصنوعی را در کنسول Firebase (به نام "Gemini in Firebase") فعال کنید، که میتواند به شما در شروع کار و سادهسازی فرآیند توسعه کمک کند.
(اختیاری) Google Analytics برای پروژه خود تنظیم کنید، که امکان تجربه بهینه با استفاده از این محصولات فایربیس را فراهم میکند: Firebase A/B Testing ، Cloud Messaging ، Crashlytics ، In-App Messaging و Remote Config (شامل شخصیسازی ).
یا یک حساب Google Analytics موجود را انتخاب کنید یا یک حساب جدید ایجاد کنید. اگر یک حساب جدید ایجاد میکنید، محل گزارشدهی Analytics خود را انتخاب کنید، سپس تنظیمات اشتراکگذاری دادهها و شرایط Google Analytics را برای پروژه خود بپذیرید.
- روی ایجاد پروژه کلیک کنید.
فایربیس پروژه شما را ایجاد میکند، برخی منابع اولیه را فراهم میکند و APIهای مهم را فعال میکند. پس از اتمام فرآیند، به صفحه نمای کلی پروژه فایربیس خود در کنسول Firebase منتقل خواهید شد.
پروژه ابری موجود
اگر میخواهید استفاده از فایربیس را با یک پروژه Google Cloud موجود شروع کنید، این مراحل را دنبال کنید. درباره «افزودن فایربیس» به یک پروژه Google Cloud موجود و عیبیابی آن بیشتر بدانید.
- با حسابی که به شما امکان دسترسی به پروژه Google Cloud موجود را میدهد، وارد کنسول Firebase شوید.
- برای ایجاد یک پروژه جدید Firebase، روی دکمه کلیک کنید.
- در پایین صفحه، روی «افزودن Firebase به پروژه Google Cloud» کلیک کنید.
- در فیلد متن، نام پروژه موجود را وارد کنید و سپس پروژه را از لیست نمایش داده شده انتخاب کنید.
- روی باز کردن پروژه کلیک کنید.
- در صورت درخواست، شرایط Firebase را مرور و قبول کنید، سپس روی ادامه کلیک کنید.
- (اختیاری) دستیار هوش مصنوعی را در کنسول Firebase (به نام "Gemini in Firebase") فعال کنید، که میتواند به شما در شروع کار و سادهسازی فرآیند توسعه کمک کند.
(اختیاری) Google Analytics برای پروژه خود تنظیم کنید، که امکان تجربه بهینه با استفاده از این محصولات فایربیس را فراهم میکند: Firebase A/B Testing ، Cloud Messaging ، Crashlytics ، In-App Messaging و Remote Config (شامل شخصیسازی ).
یا یک حساب Google Analytics موجود را انتخاب کنید یا یک حساب جدید ایجاد کنید. اگر یک حساب جدید ایجاد میکنید، محل گزارشدهی Analytics خود را انتخاب کنید، سپس تنظیمات اشتراکگذاری دادهها و شرایط Google Analytics را برای پروژه خود بپذیرید.
- روی افزودن فایربیس کلیک کنید.
فایربیس، فایربیس را به پروژه موجود شما اضافه میکند . پس از اتمام فرآیند، به صفحه نمای کلی پروژه فایربیس خود در کنسول Firebase منتقل خواهید شد.
محیط و رابط خط فرمان فایربیس خود را تنظیم کنید
نود جی اس
برای نوشتن توابع به یک محیط Node.js و برای استقرار توابع در زمان اجرای Cloud Functions به Firebase CLI نیاز خواهید داشت. برای نصب Node.js و npm ، Node Version Manager توصیه میشود.
پس از نصب Node.js و npm، رابط خط فرمان Firebase را از طریق روش دلخواه خود نصب کنید . برای نصب رابط خط فرمان از طریق npm، از دستور زیر استفاده کنید:
npm install -g firebase-tools
این دستور firebase که به صورت سراسری در دسترس است را نصب میکند. اگر دستور با شکست مواجه شد، ممکن است لازم باشد مجوزهای npm را تغییر دهید . برای بهروزرسانی به آخرین نسخه firebase-tools
، همان دستور را دوباره اجرا کنید.
پایتون
برای نوشتن توابع به یک محیط پایتون نیاز دارید و برای استقرار توابع در زمان اجرای Cloud Functions به Firebase CLI نیاز خواهید داشت. توصیه میکنیم از venv
برای جداسازی وابستگیها استفاده کنید. نسخههای پایتون ۳.۱۰ تا ۳.۱۳ پشتیبانی میشوند و ۳.۱۳ زمان اجرای پیشفرض است.
پس از نصب پایتون، رابط خط Firebase را از طریق روش دلخواه خود نصب کنید .
پروژه خود را اولیه کنید
وقتی Firebase SDK را برای Cloud Functions مقداردهی اولیه میکنید، یک پروژه خالی حاوی وابستگیها و مقداری کد نمونه حداقلی ایجاد میکنید. اگر از Node.js استفاده میکنید، میتوانید TypeScript یا JavaScript را برای نوشتن توابع انتخاب کنید. برای اهداف این آموزش، باید Cloud Firestore نیز مقداردهی اولیه کنید.
برای مقداردهی اولیه پروژه خود:
- برای ورود از طریق مرورگر و تأیید اعتبار رابط خط فرمان Firebase ،
firebase login
اجرا کنید. - به دایرکتوری پروژه Firebase خود بروید.
-
firebase init firestore
را اجرا کنید. در این آموزش، میتوانید مقادیر پیشفرض را هنگام درخواست قوانین Firestore و فایلهای ایندکس بپذیرید. اگر هنوز از Cloud Firestore در این پروژه استفاده نکردهاید، باید همانطور که در بخش «شروع با Cloud Firestore توضیح داده شده است، یک حالت شروع و مکان برای Firestore نیز انتخاب کنید. -
firebase init functions
اجرا کنید. رابط خط فرمان (CLI) از شما میخواهد که یک کدبیس موجود را انتخاب کنید یا یک کدبیس جدید را مقداردهی اولیه و نامگذاری کنید. وقتی تازه شروع به کار کردهاید، یک کدبیس واحد در مکان پیشفرض کافی است. بعداً، با گسترش پیادهسازی شما، ممکن است بخواهید توابع را در کدبیسها سازماندهی کنید . رابط خط فرمان (CLI) این گزینهها را برای پشتیبانی از زبان در اختیار شما قرار میدهد:
- جاوا اسکریپت
- تایپ اسکریپت
- پایتون
برای این آموزش، جاوا اسکریپت یا پایتون را انتخاب کنید. برای نوشتن در TypeScript، به بخش نوشتن توابع با TypeScript مراجعه کنید.
رابط خط فرمان (CLI) به شما امکان نصب وابستگیها را میدهد. اگر میخواهید وابستگیها را به روش دیگری مدیریت کنید، میتوانید با خیال راحت این گزینه را رد کنید.
پس از اجرای موفقیتآمیز این دستورات، ساختار پروژه شما به شکل زیر خواهد بود:
نود جی اس
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
ماژولهای مورد نیاز را وارد کنید و یک برنامه را راهاندازی کنید
پس از اتمام مراحل راهاندازی، میتوانید پوشه منبع را باز کنید و همانطور که در بخشهای بعدی توضیح داده شده است، شروع به اضافه کردن کد کنید. برای این نمونه، پروژه شما باید ماژولهای Cloud Functions و Admin SDK را وارد کند. خطوطی مانند موارد زیر را به فایل منبع خود اضافه کنید:
نود جی اس
// The Cloud Functions for Firebase SDK to create Cloud Functions and triggers.
const {logger} = require("firebase-functions");
const {onRequest} = require("firebase-functions/https");
const {onDocumentCreated} = require("firebase-functions/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
را راهاندازی میکنند که از طریق آن میتوان تغییرات Cloud Firestore را انجام داد. هر جا که پشتیبانی Admin SDK در دسترس باشد، مانند FCM ، Authentication و Firebase Realtime Database ، روشی قدرتمند برای ادغام Firebase با استفاده از Cloud Functions فراهم میکند.
رابط خط فرمان فایربیس ( Firebase CLI) به طور خودکار ماژولهای Firebase Admin SDK و Firebase SDK for Cloud Functions را هنگام راهاندازی اولیه پروژه نصب میکند. برای اطلاعات بیشتر در مورد افزودن کتابخانههای شخص ثالث به پروژه خود، به بخش Handle Dependencies مراجعه کنید.
تابع «افزودن پیام» را اضافه کنید
برای تابع "افزودن پیام"، این خطوط را به فایل منبع خود اضافه کنید:
نود جی اس
// 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 همزمان هستند (شبیه به توابع قابل فراخوانی )، بنابراین شما باید در اسرع وقت پاسخی ارسال کنید و کار را با استفاده از Cloud Firestore به تعویق بیندازید. تابع HTTP "add message" یک مقدار متنی را به نقطه انتهایی HTTP ارسال میکند و آن را در مسیر /messages/:documentId/original
در پایگاه داده وارد میکند.
تابع «حروف بزرگ را بساز» را اضافه کنید
برای تابع "make uppercase"، این خطوط را به فایل منبع خود اضافه کنید:
نود جی اس
// 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})
تابع "make uppercase" زمانی اجرا میشود که Cloud Firestore در آن نوشته شود و سندی را که باید به آن گوش دهد، تعریف کند. به دلایل عملکردی، باید تا حد امکان دقیق باشید.
براکتها - برای مثال، {documentId}
- "پارامترها" را احاطه میکنند، کاراکترهای جایگزین که دادههای منطبق خود را در فراخوانی نمایش میدهند. Cloud Firestore هر زمان که پیامهای جدید اضافه شوند، فراخوانی را فعال میکند.
در Node.js، توابع رویدادمحور مانند رویدادهای Cloud Firestore ناهمزمان هستند. تابع فراخوانی باید یا null
، یک Object یا یک Promise را برگرداند. اگر چیزی برنگردانید، تابع منقضی میشود، خطا اعلام میکند و دوباره امتحان میشود. به بخش همگامسازی، ناهمگامی و Promiseها مراجعه کنید.
اجرای توابع خود را شبیهسازی کنید
Firebase Local Emulator Suite به شما این امکان را میدهد که به جای استقرار در یک پروژه Firebase، برنامهها را روی دستگاه محلی خود بسازید و آزمایش کنید. آزمایش محلی در طول توسعه اکیداً توصیه میشود، تا حدی به این دلیل که خطر خطاهای کدنویسی را که میتوانند به طور بالقوه در محیط تولید هزینه ایجاد کنند (به عنوان مثال، یک حلقه بینهایت) کاهش میدهد.
برای تقلید از توابع شما:
دستور
firebase emulators:start
اجرا کنید و خروجی مربوط به URL مربوط به Emulator Suite UI بررسی کنید. مقدار پیشفرض آن localhost:4000 است ، اما ممکن است روی پورت دیگری روی دستگاه شما میزبانی شود. آن URL را در مرورگر خود وارد کنید تا Emulator Suite UI باز شود.خروجی دستور
firebase emulators:start
برای URL تابع HTTP بررسی کنید. این آدرس مشابهhttp://localhost:5001/MY_PROJECT/us-central1/addMessage
خواهد بود، با این تفاوت که:-
MY_PROJECT
با شناسه پروژه شما جایگزین خواهد شد. - ممکن است پورت در دستگاه محلی شما متفاوت باشد.
-
رشتهی کوئری
?text=uppercaseme
به انتهای آدرس اینترنتی تابع اضافه کنید. این باید چیزی شبیه به این باشد:http://localhost:5001/MY_PROJECT/us-central1/addMessage?text=uppercaseme
. به صورت اختیاری، میتوانید پیام "uppercaseme" را به یک پیام سفارشی تغییر دهید.با باز کردن URL در یک برگه جدید در مرورگر خود، یک پیام جدید ایجاد کنید.
مشاهدهی اثرات توابع در Emulator Suite UI :
در برگه «گزارشها» ، باید گزارشهای جدیدی را مشاهده کنید که نشان میدهد توابع HTTP شما با موفقیت اجرا شدهاند:
i functions: Beginning execution of "addMessage"
i functions: Beginning execution of "makeUppercase"
در برگه Firestore ، باید سندی را ببینید که حاوی پیام اصلی شما و همچنین نسخه بزرگ شده پیام شما است (اگر در ابتدا "uppercaseme" بوده است، "UPPERCASEME" را خواهید دید).
توابع را در یک محیط عملیاتی مستقر کنید
زمانی که توابع شما در شبیهساز مطابق میل شما کار کردند، میتوانید به سراغ استقرار، آزمایش و اجرای آنها در محیط تولید بروید. به خاطر داشته باشید که برای استقرار در محیط تولید، پروژه شما باید در طرح قیمتگذاری Blaze باشد. به قیمتگذاری Cloud Functions مراجعه کنید.
برای تکمیل آموزش، توابع خود را مستقر کرده و سپس آنها را اجرا کنید.
برای استقرار توابع خود، این دستور را اجرا کنید:
firebase deploy --only functions
پس از اجرای این دستور، رابط خط فرمان Firebase ، URL مربوط به هر نقطه پایانی تابع HTTP را نمایش میدهد. در ترمینال خود، باید خطی مانند زیر را مشاهده کنید:
Function URL (addMessage): https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage
این URL شامل شناسه پروژه شما و همچنین منطقهای برای تابع HTTP است. اگرچه اکنون نیازی به نگرانی در مورد آن نیست، اما برخی از توابع HTTP در محیط عملیاتی باید مکانی را مشخص کنند تا تأخیر شبکه به حداقل برسد.
اگر با خطاهای دسترسی مانند «قادر به تأیید دسترسی به پروژه نیست» مواجه شدید، نام مستعار پروژه خود را بررسی کنید.
با استفاده از خروجی URL توسط CLI، یک پارامتر کوئری متنی اضافه کنید و آن را در مرورگر باز کنید:
https://us-central1-MY_PROJECT.cloudfunctions.net/addMessage?text=uppercasemetoo
این تابع اجرا میشود و مرورگر را به کنسول Firebase در محل پایگاه داده که رشته متن در آن ذخیره شده است، هدایت میکند. این رویداد نوشتن، تابع "make uppercase" را فعال میکند که نسخهای از رشته را با حروف بزرگ مینویسد.
پس از استقرار و اجرای توابع، میتوانید گزارشها را در کنسول Google Cloud مشاهده کنید. اگر نیاز به حذف توابع در مرحله توسعه یا تولید دارید، از Firebase CLI استفاده کنید.
در محیط عملیاتی، ممکن است بخواهید با تنظیم حداقل و حداکثر تعداد نمونههای اجرا شده، عملکرد تابع را بهینه کرده و هزینهها را کنترل کنید. برای اطلاعات بیشتر در مورد این گزینههای زمان اجرا، به بخش «کنترل رفتار مقیاسبندی» مراجعه کنید.
مراحل بعدی
در این مستندات، میتوانید اطلاعات بیشتری در مورد نحوه مدیریت توابع برای Cloud Functions و همچنین نحوه مدیریت انواع رویدادهای پشتیبانی شده توسط Cloud Functions کسب کنید.
برای کسب اطلاعات بیشتر در مورد Cloud Functions ، میتوانید موارد زیر را نیز انجام دهید:
- درباره موارد استفاده از Cloud Functions بخوانید.
- کدلب Cloud Functions امتحان کنید.
- بررسی و اجرای نمونه کدها در گیتهاب