نمونه اولیه و آزمایش برنامه های وب با شبیه ساز میزبانی Firebase

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

همچنین باید با ویژگی‌ها و گردش کار پیاده‌سازی Firebase Hosting آشنا باشید. با مقدمه‌ای بر Firebase Hosting شروع کنید.

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

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

  • بدون متحمل شدن هزینه‌های ذخیره‌سازی یا دسترسی، نمونه اولیه سایت‌های استاتیک و برنامه‌های وب خود را بسازید
  • قبل از استقرار در سایت میزبان خود، توابع HTTPS را نمونه‌سازی، آزمایش و اشکال‌زدایی کنید
  • سایت‌ها و برنامه‌های وب را در گردش‌های کاری یکپارچه‌سازی مداوم و کانتینر شده آزمایش کنید.

یک پروژه فایربیس انتخاب کنید

Firebase Local Emulator Suite محصولات مربوط به یک پروژه فایربیس را شبیه‌سازی می‌کند.

برای انتخاب پروژه مورد استفاده، قبل از شروع شبیه‌سازها، در CLI firebase use در دایرکتوری کاری خود اجرا کنید. یا می‌توانید پرچم --project را به هر دستور شبیه‌ساز ارسال کنید.

Local Emulator Suite از شبیه‌سازی پروژه‌های واقعی Firebase و پروژه‌های آزمایشی پشتیبانی می‌کند.

نوع پروژه ویژگی‌ها استفاده با شبیه‌سازها
واقعی

یک پروژه واقعی Firebase، پروژه‌ای است که شما ایجاد و پیکربندی کرده‌اید (به احتمال زیاد از طریق کنسول Firebase ).

پروژه‌های واقعی منابع زنده‌ای دارند، مانند نمونه‌های پایگاه داده، مخازن ذخیره‌سازی، توابع یا هر منبع دیگری که برای آن پروژه Firebase تنظیم کرده‌اید.

هنگام کار با پروژه‌های واقعی Firebase، می‌توانید شبیه‌سازها را برای هر یا همه محصولات پشتیبانی‌شده اجرا کنید.

برای هر محصولی که شبیه‌سازی نمی‌کنید، برنامه‌ها و کد شما با منبع زنده (نمونه پایگاه داده، مخزن ذخیره‌سازی، تابع و غیره) تعامل خواهند داشت.

نسخه آزمایشی

یک پروژه آزمایشی فایربیس هیچ پیکربندی واقعی فایربیس و هیچ منبع زنده‌ای ندارد. این پروژه‌ها معمولاً از طریق codelabs یا سایر آموزش‌ها قابل دسترسی هستند.

شناسه‌های پروژه برای پروژه‌های نمایشی دارای پیشوند demo- هستند.

هنگام کار با پروژه‌های آزمایشی Firebase، برنامه‌ها و کد شما فقط با شبیه‌سازها تعامل دارند. اگر برنامه شما سعی کند با منبعی که شبیه‌ساز برای آن اجرا نمی‌شود، تعامل داشته باشد، آن کد با شکست مواجه خواهد شد.

توصیه می‌کنیم تا حد امکان از پروژه‌های نمایشی استفاده کنید. مزایا عبارتند از:

  • راه‌اندازی آسان‌تر، زیرا می‌توانید شبیه‌سازها را بدون ایجاد یک پروژه Firebase اجرا کنید
  • ایمنی قوی‌تر، زیرا اگر کد شما به‌طور تصادفی منابع شبیه‌سازی نشده (تولیدی) را فراخوانی کند، هیچ شانسی برای تغییر داده‌ها، استفاده و صدور صورتحساب وجود ندارد.
  • پشتیبانی آفلاین بهتر، زیرا نیازی به دسترسی به اینترنت برای دانلود پیکربندی SDK شما نیست.

گردش کار نمونه‌سازی اصلی

اگر می‌خواهید برنامه‌هایتان را سریع اجرا کنید یا می‌خواهید برنامه‌تان با منابع شبیه‌سازی‌شده‌ی پروژه‌ی backend تعامل داشته باشد، می‌توانید محتوای Hosting و پیکربندی خود را به‌صورت محلی آزمایش کنید. هنگام آزمایش به‌صورت محلی، Firebase برنامه‌ی وب شما را در یک URL میزبانی‌شده‌ی محلی ارائه می‌دهد.

  1. (اختیاری) به طور پیش‌فرض، برنامه‌ی میزبانی‌شده‌ی محلی شما با منابع پروژه‌ی واقعی ، نه شبیه‌سازی‌شده (توابع، پایگاه داده، قوانین و غیره) تعامل خواهد داشت. در عوض، می‌توانید به صورت اختیاری برنامه‌ی خود را به منابع پروژه‌ی شبیه‌سازی‌شده‌ای که پیکربندی کرده‌اید، متصل کنید. اطلاعات بیشتر: Realtime Database | Cloud Firestore | Cloud Functions

  2. از ریشه دایرکتوری پروژه محلی خود، دستور زیر را اجرا کنید:

    firebase emulators:start
  3. برنامه وب خود را با استفاده از آدرس اینترنتی محلی که توسط رابط خط فرمان (CLI) برگردانده می‌شود (معمولاً http://localhost:5000 ) باز کنید.

  4. برای به‌روزرسانی URL محلی با تغییرات، مرورگر خود را به‌روزرسانی کنید.

تست از سایر دستگاه‌های محلی

به طور پیش‌فرض، شبیه‌سازها فقط به درخواست‌های localhost پاسخ می‌دهند. این بدان معناست که شما می‌توانید از طریق مرورگر وب رایانه خود به محتوای میزبانی‌شده خود دسترسی داشته باشید، اما از سایر دستگاه‌های موجود در شبکه خود نمی‌توانید. اگر می‌خواهید از سایر دستگاه‌های محلی آزمایش کنید، firebase.json خود را به این صورت پیکربندی کنید:

"emulators": {
    // ...

    "hosting": {
      "port": 5000,
      "host": "0.0.0.0"
    }
  }

ایجاد توکن‌های احراز هویت برای گردش‌های کاری یکپارچه‌سازی مداوم

اگر گردش‌های کاری یکپارچه‌سازی مداوم شما به Firebase Hosting متکی هستند، برای اجرای firebase emulators:exec باید با استفاده از یک توکن وارد سیستم شوید. سایر شبیه‌سازها نیازی به ورود ندارند.

برای تولید یک توکن، firebase login:ci در محیط محلی خود اجرا کنید؛ این کار نباید از یک سیستم CI انجام شود. برای احراز هویت، دستورالعمل‌ها را دنبال کنید. شما فقط باید این مرحله را یک بار در هر پروژه انجام دهید، زیرا توکن در تمام نسخه‌ها معتبر خواهد بود. با توکن باید مانند یک رمز عبور رفتار شود؛ مطمئن شوید که مخفی نگه داشته می‌شود.

اگر محیط CI شما به شما اجازه می‌دهد متغیرهای محیطی را که می‌توانند در اسکریپت‌های ساخت استفاده شوند، مشخص کنید، کافیست یک متغیر محیطی به نام FIREBASE_TOKEN ایجاد کنید که مقدار آن رشته توکن دسترسی باشد. رابط خط فرمان Firebase به طور خودکار متغیر محیطی FIREBASE_TOKEN را دریافت می‌کند و شبیه‌سازها به درستی شروع به کار می‌کنند.

به عنوان آخرین راه حل، می‌توانید به سادگی توکن را در اسکریپت ساخت خود وارد کنید، اما مطمئن شوید که طرف‌های غیرقابل اعتماد به آن دسترسی ندارند. برای این رویکرد کدنویسی شده، می‌توانید --token "YOUR_TOKEN_STRING_HERE" به دستور firebase emulators:exec اضافه کنید.

بعدش چی؟