قبل از استفاده از شبیهساز Extensions با برنامهتان، مطمئن شوید که گردش کار مجموعه محلی Firebase Local Emulator Suite را درک کردهاید ، و Local Emulator Suite را نصب و پیکربندی کرده و دستورات CLI آن را مرور میکنید.
این راهنما همچنین فرض میکند که شما با Firebase Extensions و نحوه استفاده از آنها در برنامههای Firebase خود آشنا هستید.
با شبیه ساز Extensions چه کاری می توانم انجام دهم؟
با شبیهساز Extensions ، میتوانید افزونهها را در یک محیط محلی امن نصب و مدیریت کنید و ضمن به حداقل رساندن هزینههای صورتحساب، تواناییهای آنها را بهتر درک کنید. شبیهساز توابع برنامه افزودنی شما را به صورت محلی اجرا میکند، از جمله توابع راهاندازی رویداد پسزمینه با استفاده از شبیهسازهای Cloud Firestore ، Realtime Database ، Cloud Storage for Firebase ، Authentication و Pub/Sub ، و توابع فعال شده توسط Eventarc که در Cloud Functions v2 پیادهسازی شدهاند.
یک پروژه Firebase را انتخاب کنید
Firebase Local Emulator Suite محصولات را برای یک پروژه 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 UI برای افزودن دادهها به مجموعه اسناد ایمیل و راهاندازی سایر منابع پشتیبان، همانطور که توسط افزونه Trigger Email لازم است، استفاده کنید.
روش دیگر، برای محیطهای تست غیرتعاملی مانند گردشهای کاری یکپارچهسازی مداوم، میتوانید یک اسکریپت آزمایشی برای ارزیابی برنامه افزودنی بنویسید که در میان مراحل دیگر، دادههای Cloud Firestore ضروری را پر میکند و توابع را فعال میکند. سپس شما باید Local Emulator Suite برای اجرای اسکریپت آزمایشی خود فراخوانی کنید:
firebase emulators:exec my-test.sh
تفاوت آزمایش با شبیه ساز Extensions با تولید
شبیه ساز Extensions به شما امکان می دهد برنامه های افزودنی را به گونه ای آزمایش کنید که با تجربه تولید مطابقت داشته باشد. با این حال، تفاوت هایی با رفتار تولید وجود دارد.
Cloud IAM
مجموعه Firebase Emulator تلاشی برای تکرار یا احترام به رفتارهای مرتبط با IAM برای اجرا ندارد. شبیه سازها از قوانین امنیتی Firebase ارائه شده پیروی می کنند، اما در شرایطی که IAM به طور معمول استفاده می شود، به عنوان مثال برای تنظیم توابع Cloud با فراخوانی حساب سرویس و در نتیجه مجوزها، شبیه ساز قابل پیکربندی نیست و از حساب جهانی در دسترس در دستگاه توسعه دهنده شما استفاده می کند. مشابه اجرای مستقیم یک اسکریپت محلی.
ایجاد محدودیت نوع
در حال حاضر، Firebase Local Emulator Suite فقط از توابع راهاندازی درخواست HTTP، راهاندازهای رویداد سفارشی Eventarc برای برنامههای افزودنی، و توابع راهاندازی رویداد پسزمینه برای Cloud Firestore ، Realtime Database ، Cloud Storage for Firebase ، Authentication و Pub/Sub پشتیبانی میکند. برای ارزیابی برنامه های افزودنی که از انواع دیگر توابع راه اندازی شده استفاده می کنند، باید برنامه افزودنی خود را در یک پروژه Firebase آزمایشی نصب کنید .
بعدش چی؟
- برای مجموعهای از ویدیوها و مثالهای دقیق نحوه انجام، فهرست پخش آموزش شبیهسازهای Firebase را دنبال کنید.