قبل از استفاده از شبیهساز برنامههای افزودنی با برنامهتان، مطمئن شوید که گردش کار مجموعه محلی شبیهساز محلی Firebase را درک کردهاید ، و مجموعه شبیهساز محلی را نصب و پیکربندی کرده و دستورات CLI آن را مرور میکنید.
این راهنما همچنین فرض میکند که شما با افزونههای Firebase و نحوه استفاده از آنها در برنامههای Firebase خود آشنا هستید.
با شبیه ساز Extensions چه کاری می توانم انجام دهم؟
با شبیهساز Extensions، میتوانید افزونهها را در یک محیط محلی امن نصب و مدیریت کنید و ضمن به حداقل رساندن هزینههای صورتحساب، تواناییهای آنها را بهتر درک کنید. شبیه ساز توابع برنامه افزودنی شما را به صورت محلی اجرا می کند، از جمله توابع راه اندازی شده با رویداد پس زمینه با استفاده از شبیه سازهای Cloud Firestore، پایگاه داده بیدرنگ، فضای ذخیره سازی ابری برای Firebase، احراز هویت و Pub/Sub، و توابع فعال شده توسط Eventarc که در Cloud Functions v2 پیاده سازی شده اند.
یک پروژه Firebase را انتخاب کنید
مجموعه شبیه ساز محلی Firebase محصولات را برای یک پروژه Firebase تقلید می کند.
برای انتخاب پروژه مورد استفاده، قبل از شروع شبیه سازها، در CLI از firebase use
. یا، می توانید پرچم --project
به هر فرمان شبیه ساز ارسال کنید.
Local Emulator Suite از شبیه سازی پروژه های Firebase واقعی و پروژه های آزمایشی پشتیبانی می کند.
نوع پروژه | امکانات | با شبیه سازها استفاده کنید |
---|---|---|
واقعی | یک پروژه Firebase واقعی پروژه ای است که شما ایجاد و پیکربندی کرده اید (به احتمال زیاد از طریق کنسول Firebase). پروژه های واقعی دارای منابع زنده هستند، مانند نمونه های پایگاه داده، سطل های ذخیره سازی، توابع یا هر منبع دیگری که برای آن پروژه Firebase تنظیم کرده اید. | هنگام کار با پروژه های Firebase واقعی، می توانید شبیه سازها را برای هر یک یا همه محصولات پشتیبانی شده اجرا کنید. برای هر محصولی که شبیهسازی نمیکنید، برنامهها و کد شما با منبع زنده (نمونه پایگاه داده، سطل ذخیرهسازی، عملکرد و غیره) تعامل خواهند داشت. |
نسخه ی نمایشی | یک پروژه Firebase آزمایشی هیچ پیکربندی Firebase واقعی و هیچ منبع زنده ای ندارد. این پروژه ها معمولاً از طریق نرم افزارهای کد یا آموزش های دیگر قابل دسترسی هستند. شناسه های پروژه برای پروژه های نمایشی دارای پیشوند | هنگام کار با پروژه های Firebase آزمایشی، برنامه ها و کد شما فقط با شبیه سازها تعامل دارند. اگر برنامه شما سعی کند با منبعی که شبیه ساز برای آن اجرا نمی شود تعامل داشته باشد، آن کد با شکست مواجه می شود. |
توصیه می کنیم تا جایی که امکان دارد از پروژه های نمایشی استفاده کنید. مزایا عبارتند از:
- راه اندازی آسان تر، زیرا می توانید شبیه سازها را بدون ایجاد پروژه Firebase اجرا کنید
- ایمنی قوی تر، زیرا اگر کد شما به طور تصادفی منابع غیر شبیه سازی شده (تولید) را فراخوانی کند، هیچ شانسی برای تغییر داده ها، استفاده و صورتحساب وجود ندارد.
- پشتیبانی آفلاین بهتر است، زیرا برای دانلود پیکربندی SDK نیازی به دسترسی به اینترنت نیست.
یک افزونه را نصب و ارزیابی کنید
استفاده از شبیه ساز Extensions برای ارزیابی اینکه آیا یک برنامه افزودنی نیازهای شما را برآورده می کند، ساده است.
بیایید فرض کنیم به پسوند Trigger Email ( firestore-send-email
) علاقه مند هستید، اگرچه گردش کار زیر هر برنامه افزودنی را پوشش می دهد. هنگامی که با شبیه سازهای محلی اجرا می شود، Trigger Email به طور خودکار از شبیه سازهای Cloud Firestore و Cloud Functions استفاده می کند.
برای ارزیابی یک برنامه افزودنی به صورت محلی:
پسوند را به مانیفست پسوند محلی اضافه کنید. مانیفست افزونه ها فهرستی از نمونه های برنامه افزودنی و پیکربندی های آنها است.
firebase ext:install --local firebase/firestore-send-email
اجرای دستور بالا از شما می خواهد که آخرین نسخه افزونه
firebase/firestore-send-email
را پیکربندی کنید و پیکربندی را در مانیفست ذخیره کنید، اما پیکربندی را در پروژه شما مستقر نمی کند. برای اطلاعات بیشتر در مورد این، به مدیریت پیکربندی افزونه ها با مانیفست ها مراجعه کنیدLocal Emulator Suite را مانند حالت عادی راه اندازی کنید.
firebase emulators:start
اکنون، با استفاده از نمونه برنامه افزودنی firestore-send-email
فهرست شده در مانیفست شما، Local Emulator Suite کد منبع آن برنامه افزودنی را در ~/.cache/firebase/extensions
دانلود می کند. پس از دانلود Soures، Local Emulator Suite شروع به کار می کند و شما می توانید هر یک از عملکردهای فعال در پس زمینه برنامه افزودنی را فعال کنید و برنامه خود را به Local Emulator Suite متصل کنید تا ادغام آنها را با برنامه خود آزمایش کنید.
میتوانید از رابط کاربری Emulator Suite برای افزودن دادهها به مجموعه اسناد ایمیل و راهاندازی سایر منابع پشتیبان، همانطور که توسط افزونه Trigger Email لازم است، استفاده کنید.
روش دیگر، برای محیطهای تست غیرتعاملی مانند گردشهای کاری یکپارچهسازی مداوم، میتوانید یک اسکریپت آزمایشی برای ارزیابی برنامه افزودنی بنویسید که در میان مراحل دیگر، دادههای Cloud Firestore ضروری را پر میکند و توابع را فعال میکند. سپس شما باید Local Emulator Suite را برای اجرای اسکریپت آزمایشی خود فراخوانی کنید:
firebase emulators:exec my-test.sh
تفاوت آزمایش با شبیه ساز Extensions با تولید
شبیه ساز Extensions به شما امکان می دهد برنامه های افزودنی را به گونه ای آزمایش کنید که با تجربه تولید مطابقت داشته باشد. با این حال، تفاوت هایی با رفتار تولید وجود دارد.
Cloud IAM
مجموعه Firebase Emulator تلاشی برای تکرار یا احترام به رفتارهای مرتبط با IAM برای اجرا ندارد. شبیه سازها به قوانین امنیتی Firebase ارائه شده پایبند هستند، اما در شرایطی که IAM به طور معمول مورد استفاده قرار می گیرد، به عنوان مثال برای تنظیم عملکردهای ابری که حساب سرویس را فراخوانی می کند و بنابراین مجوزها، شبیه ساز قابل پیکربندی نیست و از حساب جهانی در دسترس در دستگاه توسعه دهنده شما استفاده می کند. مشابه اجرای مستقیم یک اسکریپت محلی.
ایجاد محدودیت نوع
در حال حاضر، مجموعه شبیهساز محلی Firebase فقط از توابع راهاندازی شده با درخواست HTTP، راهاندازهای رویداد سفارشی Eventarc برای برنامههای افزودنی، و عملکردهای راهاندازی رویداد پسزمینه برای Cloud Firestore، پایگاه داده بیدرنگ، فضای ذخیرهسازی ابری برای Firebase، احراز هویت و Pub/Sub پشتیبانی میکند. برای ارزیابی برنامه های افزودنی که از انواع دیگر توابع راه اندازی شده استفاده می کنند، باید برنامه افزودنی خود را در یک پروژه Firebase آزمایشی نصب کنید .
بعدش چی؟
- برای مجموعهای از ویدیوها و مثالهای دقیق نحوه انجام، فهرست پخش آموزش شبیهسازهای Firebase را دنبال کنید.