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

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

  • توابع HTTPS
  • توابع قابل تماس
  • عملکردهای پس زمینه از احراز هویت ، پایگاه داده بیدرنگ ، Cloud Firestore و Cloud Pub/Sub ایجاد شده است.

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

Firebase CLI را نصب کنید

برای استفاده از شبیه ساز عملکردهای ابری ، ابتدا 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 یا Google API مانند Cloud Translation یا Cloud Speech ، نیاز به مراحل راه اندازی دارند که در این قسمت توضیح داده شده است. این امر که آیا شما با استفاده از توابع پوسته و یا firebase emulators:start .

برای تنظیم اعتبار سرپرست برای عملکردهای شبیه سازی شده:

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

    یونیکس

    $ 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);
iOS - Swift
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 Firestore
  • شبیه ساز احراز هویت
  • شبیه ساز Pub/Sub

برای ایجاد رویدادهای پس زمینه ، برنامه یا کد تست خود را با استفاده از SDK برای پلت فرم خود به شبیه سازها وصل کنید.

تعامل با سایر خدمات

مجموعه شبیه ساز شامل شبیه سازهای متعددی است که آزمایش تعاملات بین محصولات را امکان پذیر می کند.

Cloud Firestore

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

میزبانی Firebase

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

ورود به سیستم

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

مراحل بعدی

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