عملکردها را به صورت محلی اجرا کنید

Firebase CLI شامل یک شبیه ساز توابع ابری است که می تواند انواع عملکردهای زیر را شبیه سازی کند:

  • توابع HTTPS
  • توابع قابل فراخوانی
  • توابع پس‌زمینه از احراز هویت، پایگاه داده بیدرنگ، Cloud Firestore، و 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 و یا بالاتر.

تنظیم اعتبار مدیریت (اختیاری)

اگر می خواهید تست توابع خود را به تعامل با Google API های دیگر رابط های برنامه کاربردی فایربیس از طریق فایربیس محیط مدیریت SDK ، شما ممکن است نیاز به راه اندازی اعتبار مدیریت.

  • ابر Firestore و بیدرنگ محرک پایگاه در حال حاضر اختیارات کافی، و انجام تنظیمات اضافی نیاز ندارد.
  • همه APIهای دیگر، از جمله APIهای Firebase مانند Authentication و FCM یا APIهای Google مانند Cloud Translation یا Cloud Speech، به مراحل راه اندازی توضیح داده شده در این بخش نیاز دارند. این امر که آیا شما با استفاده از توابع پوسته و یا firebase emulators:start .

برای تنظیم اعتبار مدیریت برای توابع شبیه سازی شده:

  1. را باز پنجره حسابهای سرویس از ابر کنسول گوگل.
  2. اطمینان حاصل کنید که موتور برنامه حساب خدمات به طور پیش فرض انتخاب شده است، و با استفاده از گزینه های منو در سمت راست برای انتخاب درست کلیدی است.
  3. وقتی از شما خواسته، JSON را انتخاب کنید برای نوع کلیدی، و روی ایجاد کلیک کنید.
  4. اعتبار پیش فرض Google خود را طوری تنظیم کنید که به کلید دانلود شده اشاره کند:

    یونیکس

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
    

    پنجره ها

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
    

پس از اتمام این مراحل، آزمایش توابع خود را می توانید در Firebase و گوگل رابط های برنامه کاربردی با استفاده از دسترسی به SDK محیط مدیریت . به عنوان مثال، در هنگام تست یک ماشه احراز هویت، تابع شبیه سازی می تواند پاسخ 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

مجموعه شبیه ساز را اجرا کنید

برای اجرای توابع ابر شبیه ساز، با استفاده از emulators:start دستور:

firebase emulators:start

emulators:start دستور شبیه ساز برای توابع ابر، ابر Firestore، پایگاه بیدرنگ شروع خواهد شد، و فایربیس میزبانی وب در مورد محصولات شما را در پروژه های محلی خود را با استفاده از مقداردهی اولیه بر اساس firebase init . اگر شما می خواهید برای شروع یک شبیه ساز خاص، استفاده از --only پرچم:

firebase emulators:start --only functions

اگر شما می خواهید برای اجرای یک مجموعه تست و یا تست کردن اسکریپت پس از شبیه ساز آغاز شده است، با استفاده از emulators:exec دستور:

firebase emulators:exec "./my-test.sh"

برنامه خود را برای صحبت با شبیه سازها ابزار کنید

برای اینکه برنامه خود را برای تعامل با شبیه سازها تنظیم کنید، ممکن است نیاز به انجام برخی تنظیمات اضافی داشته باشید.

برنامه خود را برای توابع قابل فراخوانی ابزار کنید

اگر فعالیت های نمونه و آزمون خود را شامل توابع باطن قابل فراخوانی ، تعامل پیکربندی با توابع Cloud برای شبیه ساز فایربیس مثل این:

اندروید
        // 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")

نسخه وب 9

import { getApp } from "firebase/app";
import { getFunctions, connectFunctionsEmulator } from "firebase/functions";

const functions = getFunctions(getApp());
connectFunctionsEmulator(functions, "localhost", 5001);

نسخه وب 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

اگر توابع Cloud دارید که از Firebase Admin SDK برای نوشتن در Cloud Firestore استفاده می‌کند، این نوشته‌ها در صورت اجرا به شبیه‌ساز Cloud Firestore ارسال می‌شوند. اگر توابع Cloud بیشتری توسط این نوشته‌ها فعال شوند، در شبیه‌ساز توابع ابری اجرا می‌شوند.

میزبانی Firebase

اگر شما در حال استفاده از توابع ابر به تولید محتوای پویا برای فایربیس میزبانی ، firebase emulators:start با استفاده از توابع HTTP محلی خود را به عنوان نماینده برای میزبانی.

ورود به سیستم

شبیه‌ساز گزارش‌ها را از توابع شما به پنجره ترمینال که در آن اجرا می‌شوند، پخش می‌کند. این نمایش تمام خروجی از console.log() ، console.info() ، console.error() ، و console.warn() دستورات درون توابع خود را.

مراحل بعدی

برای یک مثال کامل از با استفاده از مجموعه شبیه ساز فایربیس، را ببینید آزمایش نمونه شروع سریع .