Firebase CLI شامل یک شبیه ساز توابع ابری است که می تواند انواع عملکردهای زیر را شبیه سازی کند:
- توابع HTTPS
- توابع قابل فراخوانی
- توابع پسزمینه از احراز هویت Firebase، پایگاه داده بیدرنگ، Cloud Firestore، Cloud Storage و Cloud Pub/Sub فعال میشوند.
شما می توانید توابع را به صورت محلی اجرا کنید تا آنها را قبل از استقرار در تولید آزمایش کنید.
Firebase CLI را نصب کنید
برای استفاده از شبیه ساز Cloud Functions، ابتدا Firebase CLI را نصب کنید:
npm install -g firebase-tools
برای استفاده از شبیه ساز محلی، توابع Cloud شما باید به موارد زیر بستگی داشته باشد:
-
firebase-admin
نسخه8.0.0
یا بالاتر. -
firebase-functions
نسخه3.0.0
یا بالاتر.
تنظیم اعتبار مدیریت (اختیاری)
اگر میخواهید آزمایشهای توابع شما با APIهای Google یا سایر APIهای Firebase از طریق Firebase Admin SDK تعامل داشته باشند، ممکن است لازم باشد اعتبارنامههای سرپرست را تنظیم کنید.
- راهاندازهای Cloud Firestore و Realtime Database از قبل دارای اعتبار کافی هستند و نیازی به تنظیمات اضافی ندارند.
- همه APIهای دیگر، از جمله APIهای Firebase مانند Authentication و FCM یا APIهای Google مانند Cloud Translation یا Cloud Speech، به مراحل راهاندازی توضیح داده شده در این بخش نیاز دارند. چه از پوسته توابع Cloud یا
firebase emulators:start
.
برای تنظیم اعتبار مدیریت برای توابع شبیه سازی شده:
- صفحه حسابهای سرویس Google Cloud Console را باز کنید.
- مطمئن شوید که حساب سرویس پیشفرض App Engine انتخاب شده است و از منوی گزینهها در سمت راست برای انتخاب کلید ایجاد استفاده کنید.
- وقتی از شما خواسته شد، JSON را برای نوع کلید انتخاب کنید و روی ایجاد کلیک کنید.
اعتبار پیش فرض Google خود را طوری تنظیم کنید که به کلید دانلود شده اشاره کند:
یونیکس
export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json" firebase emulators:start
پنجره ها
set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json firebase emulators:start
پس از تکمیل این مراحل، تستهای عملکرد شما میتوانند با استفاده از Admin SDK به Firebase و APIهای Google دسترسی داشته باشند. به عنوان مثال، هنگام آزمایش یک تریگر Authentication، تابع شبیه سازی شده می تواند admin.auth().getUserByEmail(email)
را فراخوانی کند.
تنظیم پیکربندی توابع (اختیاری)
اگر از متغیرهای پیکربندی توابع سفارشی استفاده می کنید، ابتدا دستور را برای دریافت پیکربندی سفارشی خود (این را در فهرست functions
اجرا کنید) در محیط محلی خود اجرا کنید:
firebase functions:config:get > .runtimeconfig.json # If using Windows PowerShell, replace the above with: # firebase functions:config:get | ac .runtimeconfig.json
مجموعه شبیه ساز را اجرا کنید
برای اجرای شبیه ساز Cloud Functions، از دستور emulators:start
استفاده کنید:
firebase emulators:start
دستور emulators:start
شبیه سازهایی را برای توابع Cloud، Cloud Firestore، پایگاه داده بیدرنگ، و میزبانی Firebase بر اساس محصولاتی که در پروژه محلی خود با استفاده از firebase init
مقداردهی اولیه کرده اید، راه اندازی می کند. اگر می خواهید شبیه ساز خاصی را راه اندازی کنید، از پرچم --only
استفاده کنید:
firebase emulators:start --only functions
اگر می خواهید یک مجموعه آزمایشی یا اسکریپت آزمایشی را بعد از شروع شبیه سازها اجرا کنید، از دستور emulators:exec
استفاده کنید:
firebase emulators:exec "./my-test.sh"
برنامه خود را برای صحبت با شبیه سازها ابزار کنید
برای اینکه برنامه خود را برای تعامل با شبیه سازها تنظیم کنید، ممکن است نیاز به انجام برخی تنظیمات اضافی داشته باشید.
برنامه خود را برای توابع قابل فراخوانی ابزار کنید
اگر نمونه اولیه و فعالیت های آزمایشی شما شامل توابع پشتیبان قابل فراخوانی است ، تعامل با شبیه ساز Cloud Functions برای Firebase را به این صورت پیکربندی کنید:
اندروید
// 10.0.2.2 is the special IP address to connect to the 'localhost' of // the host computer from an Android emulator. FirebaseFunctions functions = FirebaseFunctions.getInstance(); functions.useEmulator("10.0.2.2", 5001);
سریع
Functions.functions().useFunctionsEmulator(origin: "http://localhost:5001")
Web version 9
import { getApp } from "firebase/app"; import { getFunctions, connectFunctionsEmulator } from "firebase/functions"; const functions = getFunctions(getApp()); connectFunctionsEmulator(functions, "localhost", 5001);
Web version 8
firebase.functions().useEmulator("localhost", 5001);
برنامه خود را برای شبیه سازی توابع HTTPS ابزار کنید
هر تابع HTTPS در کد شما از شبیه ساز محلی با استفاده از فرمت URL زیر ارائه می شود:
http:// $HOST : $PORT / $PROJECT / $REGION / $NAME
به عنوان مثال یک تابع ساده helloWorld
با پورت و منطقه میزبان پیشفرض در این آدرس ارائه میشود:
https://localhost:5001/ $PROJECT /us-central1/helloWorld
برنامه خود را برای شبیهسازی توابع فعال در پسزمینه ابزار کنید
شبیه ساز Cloud Functions از توابع فعال در پس زمینه از منابع زیر پشتیبانی می کند:
- شبیه ساز پایگاه داده بیدرنگ
- شبیه ساز Cloud Firestore
- شبیه ساز احراز هویت
- شبیه ساز Pub/Sub
برای راهاندازی رویدادهای پسزمینه، برنامه یا کد آزمایشی خود را با استفاده از SDK پلتفرم خود به شبیهسازها متصل کنید.
تعامل با سایر خدمات
مجموعه شبیه ساز شامل چندین شبیه ساز است که امکان تست تعاملات بین محصول را فراهم می کند.
Cloud Firestore
اگر توابعی دارید که از Firebase Admin SDK برای نوشتن در Cloud Firestore استفاده میکند، این نوشتهها در صورت اجرا به شبیهساز Cloud Firestore ارسال میشوند. اگر توابع بیشتری توسط این نوشته ها فعال شوند، در شبیه ساز توابع ابری اجرا می شوند.
فضای ذخیره ابری
اگر توابعی دارید که از Firebase Admin SDK (نسخه 9.7.0 یا بالاتر) برای نوشتن در Cloud Storage استفاده میکند، این نوشتهها در صورت اجرا به شبیهساز Cloud Storage ارسال میشوند. اگر توابع بیشتری توسط این نوشته ها فعال شوند، در شبیه ساز توابع ابری اجرا می شوند.
احراز هویت Firebase
اگر توابعی دارید که از Firebase Admin SDK (نسخه 9.3.0 یا بالاتر) برای نوشتن در Firebase Authentication استفاده میکند، این نوشتهها در صورت اجرا به شبیهساز Auth ارسال میشوند. اگر توابع بیشتری توسط این نوشته ها فعال شوند، در شبیه ساز توابع ابری اجرا می شوند.
میزبانی Firebase
اگر از توابع Cloud برای تولید محتوای پویا برای میزبانی Firebase استفاده می کنید، firebase emulators:start
از توابع HTTP محلی شما به عنوان پراکسی برای میزبانی استفاده می کند.
ورود به سیستم
شبیهساز گزارشها را از توابع شما به پنجره ترمینال که در آن اجرا میشوند، پخش میکند. تمام خروجی های console.log()
، console.info()
، console.error()
و console.warn()
را در داخل توابع شما نمایش می دهد.
مراحل بعدی
برای مثال کامل استفاده از مجموعه شبیه ساز Firebase، نمونه شروع سریع آزمایشی را ببینید.