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

می‌توانید با استفاده از شبیه‌ساز App Hosting ، که بخشی از مجموعه شبیه‌ساز محلی Firebase است، آزمایش‌های محلی برنامه خود را قبل از استقرار App Hosting انجام دهید.

قبل از استفاده از شبیه‌ساز App Hosting ، مطمئن شوید که گردش کار کلی Firebase Local Emulator Suite را درک کرده‌اید ، و Local Emulator Suite را نصب و پیکربندی کرده و دستورات CLI آن را مرور می‌کنید.

این موضوع فرض می‌کند که شما قبلاً با App Hosting آشنا هستید. در صورت نیاز، مقدمه App Hosting و سایر مطالب را مرور کنید تا به شما در درک نحوه عملکرد App Hosting کمک کند.

با شبیه ساز App Hosting چه کاری می توانم انجام دهم؟

شبیه ساز App Hosting به شما امکان می دهد برنامه های وب خود را به صورت محلی آزمایش و اصلاح کنید. این می تواند روند توسعه شما را ساده کند و کیفیت برنامه های وب ساخته شده با استفاده از Firebase و مستقر در App Hosting را افزایش دهد.

شبیه ساز App Hosting :

  1. به شما امکان می دهد برنامه وب خود را به صورت محلی اجرا کنید، با متغیرهای محیطی که در فایل های پیکربندی apphosting.yaml تعریف شده اند.
  2. می تواند اسرار ذخیره شده را در محیط های مختلف App Hosting خود صادر کند و به شما امکان می دهد برنامه ها را در محیط های مختلف شبیه سازی کنید.
  3. قابل استفاده در کنار سایر شبیه سازهای Firebase. اگر از Firestore، Auth یا هر شبیه‌ساز دیگری استفاده می‌کنید، Local Emulator Suite تضمین می‌کند که این شبیه‌سازها ابتدا قبل از شبیه‌ساز App Hosting شروع به کار می‌کنند.

شبیه ساز را پیکربندی کنید

برای شروع، Local Emulator Suite را همانطور که در Install، پیکربندی و ادغام Local Emulator Suite توضیح داده شد، نصب و مقداردهی اولیه کنید. علاوه بر هر شبیه‌ساز Firebase دیگری که می‌خواهید راه‌اندازی کنید، حتما App Hosting Emulator انتخاب کنید. CLI برخی از مقادیر شبیه‌ساز App Hosting را از شما می‌خواهد، از جمله:

  • دایرکتوری ریشه برنامه شما نسبت به پروژه؛ این مهم است اگر از monorepos با App Hosting استفاده می کنید.
  • این که آیا می خواهید اسرار را برای محیط های خاصی صادر کنید.
firebase init emulators
=== Emulators Setup
? Which Firebase emulators do you want to set up? Press Space to select emulators, then Enter to confirm your choices. (Press
<space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
❯◯ App Hosting Emulator
 ◯ Firestore Emulator
 ◯ Database Emulator
 ◯ Hosting Emulator
 ◯ Pub/Sub Emulator
 ◯ Storage Emulator
 ◯ Eventarc Emulator
(Move up and down to reveal more choices)

? Specify your app's root directory relative to your project (.)

? What configs would you like to export? (Press
<space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
 ❯◯ Secrets

? Which environment would you like to export secrets from Secret Manager for?:
  ◯ base (apphosting.yaml)
 ❯◯ staging (apphosting.yaml + apphosting.staging.yaml)
  ◯ preview (apphosting.yaml + apphosting.preview.yaml)

i Wrote Secrets as environment variables to apphosting.local.yaml.
i apphosting.local.yaml has been automatically added to your .gitignore.

هر مقداری که در این جریان راه‌اندازی ارائه می‌کنید برای به‌روزرسانی پیکربندی شبیه‌ساز App Hosting در firebase.json استفاده می‌شود. همچنین می‌توانید با به‌روزرسانی مستقیم firebase.json شبیه‌ساز میزبانی برنامه را پیکربندی کنید. طرح شبیه ساز میزبانی برنامه به شرح زیر است:

{
  ...
  "emulators": {
    "apphosting": {
      "startCommandOverride": <command> [optional]
      "rootDirectory": <path> [optional]
      }
    }
  }
  • startCommandOverride به صورت خودکار تولید و تنظیم می شود که شبیه ساز اولیه شود. اگر ارائه نشده باشد، شبیه ساز فرمان توسعه دهنده مدیریت بسته شما را شناسایی و اجرا می کند.
  • rootDirectory برای پشتیبانی از تنظیمات پروژه monorepo استفاده می شود. اگر برنامه وب شما در یک زیر شاخه است، باید مسیر آن دایرکتوری را نسبت به ریشه (محل firebase.json ) ارائه دهید.

مدیریت شبیه سازی

اولیه سازی شبیه ساز یک فایل apphosting.local.yaml را در فهرست اصلی برنامه شما ایجاد می کند. این فایل پیکربندی دارای طرحی مشابه با فایل apphosting.yaml است که در تولید استفاده می شود، اما در عوض صرفاً برای توسعه محلی است. به طور پیش‌فرض، شبیه‌ساز پیکربندی را از فایل apphosting.yaml شما می‌خواند، اما اگر فایل apphosting.local.yaml وجود داشته باشد، پیکربندی‌های موجود در آن فایل اولویت‌بندی می‌شوند و اولویت داده می‌شوند.

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

اگر با چندین محیط کار می کنید و می خواهید محیط های برنامه های مختلف را به صورت محلی شبیه سازی کنید، ممکن است به اسرار محیط های مربوطه نیاز داشته باشید. شما می توانید اسرار را برای یک محیط خاص با استفاده از دستور CLI apphosting:config:export صادر کنید (در روش دیگر، همانطور که در Configure the emulator نشان داده شده است، می توانید به صورت اختیاری اسرار را در طول اولیه سازی شبیه ساز وارد کنید).

این دستور از شما می‌خواهد که از میان محیط‌های App Hosting موجود پروژه خود را انتخاب کنید. پیکربندی App Hosting مخصوص محیط (به عنوان مثال، "apphosting.staging.yaml") و پیکربندی اصلی App Hosting ("apphosting.yaml") ادغام شده‌اند و پیکربندی محیطی خاص اولویت دارد. اگر اسرار با یک نام در هر دو پیکربندی وجود داشته باشد، از راز پیکربندی خاص محیط استفاده می شود.

به عنوان مثال، برای صادر کردن اسرار به شبیه ساز از یک محیط صحنه سازی:

firebase apphosting:config:export --project <your firebase project Id>

? What configs would you like to export? (Press
<space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed)
 ❯◯ Secrets

? Which environment would you like to export secrets from Secret Manager for?:
  ◯ base (apphosting.yaml)
 ❯◯ staging (apphosting.yaml + apphosting.staging.yaml)
  ◯ preview (apphosting.yaml + apphosting.preview.yaml)
i Wrote Secrets as environment variables to apphosting.local.yaml.
i apphosting.local.yaml has been automatically added to your .gitignore.

فایل apphosting.local.yaml شما با اسرار صادر شده به عنوان متغیرهای محیطی به روز می شود (یا ایجاد می شود اگر وجود نداشته باشد). از آنجایی که فایل اکنون حاوی اطلاعات حساس به صورت متن ساده است، به طور خودکار به فایل .gitignore شما اضافه می شود تا از انتقال تصادفی آن به مخزن کد منبع شما جلوگیری شود.

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

firebase emulators:start

با این کار تمام شبیه سازهای تعریف شده در فایل firebase.json شما از جمله شبیه ساز App Hosting شروع می شود.