از شبیه ساز Data Connect برای CI/CD استفاده کنید

Firebase Data Connect یک شبیه‌ساز محلی برای نمونه‌سازی سرتاسر و همچنین جریان‌های یکپارچه‌سازی و استقرار مداوم (CI/CD) در اختیار شما قرار می‌دهد:

  • شبیه ساز Data Connect با یک نمونه پایگاه داده PGLite یکپارچه محلی تعامل دارد تا به شما امکان می دهد پرس و جوها و جهش ها را نمونه اولیه کنید و کد مشتری را در یک محیط کاملاً محلی آزمایش کنید.
  • شبیه ساز Data Connect همچنین می تواند برای کارهای غیر تعاملی استفاده شود. این به شما امکان می‌دهد تست‌های خودکار را اجرا کنید و برای استفاده با گردش‌های کاری CI/CD مناسب است. این زمانی مفید است که طرحواره های شما پایدار هستند و می خواهید کدهای سمت سرویس گیرنده را نمونه اولیه و آزمایش کنید.

این راهنما نصب و استفاده از شبیه ساز را با جزئیات بیشتری نسبت به شروع سریع پوشش می دهد.

شبیه ساز Data Connect را نصب کنید

قبل از نصب Local Emulator Suite برای استفاده از شبیه ساز Data Connect ، به موارد زیر نیاز دارید:

  • Node.js نسخه 18.0 یا بالاتر.

Firebase CLI را نصب کرده و دایرکتوری پروژه را راه اندازی کنید

  1. Firebase CLI را طبق راهنمای نصب نصب کنید. حتماً مرتباً به‌روزرسانی کنید ، زیرا شبیه‌ساز Data Connect با رفع اشکال و ویژگی‌های جدید در حال توسعه فعال است.

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

    firebase init
    

پیکربندی Local Emulator Suite را تنظیم یا تغییر دهید

اگر شبیه ساز Data Connect را از پسوند Firebase VS Code راه اندازی کرده اید، در صورت نیاز، شبیه ساز برای شما نصب شده است.

می‌توانید از Firebase CLI برای نصب دستی شبیه‌ساز به همراه سایر مؤلفه‌های انتخابی Local Emulator Suite استفاده کنید. این دستور یک جادوگر پیکربندی را راه‌اندازی می‌کند که به شما امکان می‌دهد شبیه‌سازهای مورد علاقه را انتخاب کنید، فایل‌های باینری شبیه‌ساز مربوطه را دانلود کنید و اگر پیش‌فرض‌ها مناسب نیستند، پورت‌های شبیه‌ساز را تنظیم کنید.

  firebase init emulators

پس از نصب یک شبیه‌ساز، تا زمانی که نسخه Firebase CLI خود را به‌روزرسانی نکنید، هیچ بررسی به‌روزرسانی انجام نمی‌شود و هیچ بارگیری خودکار اضافی انجام نمی‌شود.

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

در جریان راه اندازی، Firebase CLI از شما می خواهد که یک پروژه Firebase را انتخاب یا ایجاد کنید. اگر پروژه موجودی را که با Data Connect در کنسول Firebase راه اندازی کرده اید انتخاب کنید، پیکربندی که در آنجا انتخاب کرده اید پیشنهاد می شود.

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

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

اجرای جریان firebase init شما را از طریق گزینه های تنظیم شبیه ساز راهنمایی می کند. مانند سایر شبیه سازها در Local Emulator Suite ، پارامترهای پیکربندی در فایل های پروژه محلی ذخیره می شوند.

  • فایل firebase.json شما حاوی تخصیص پورت شبیه ساز است.
    • کلید emulators:ui برای شبیه ساز Data Connect اعمال نمی شود.

با منابع محلی و تولیدی Data Connect کار کنید

اگر می‌خواهید مطمئن شوید که بر منابع تولید تأثیر نمی‌گذارد، یک شناسه پروژه demo- تنظیم کنید یا مطمئن شوید که کد مشتری شما برای اتصال به شبیه‌ساز، همانطور که در بخش بعدی بحث شد، ابزاری است.

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

اگر شبیه ساز را به صورت غیر تعاملی اجرا می کنید، به عنوان مثال برای گردش های کاری CI/CD، آن را با گزینه exec شروع کنید.

firebase emulators:exec ./path/to/test-script.sh

اگر در حال ادغام پرس و جوها و جهش های از پیش تعریف شده در کد مشتری هستید و از شبیه ساز به طور خاص برای آزمایش کلاینت ها استفاده می کنید، می توانید از گزینه start برای کار تعاملی استفاده کنید. همچنین می توانید شبیه ساز را از پسوند VS Code شروع کنید.

firebase emulators:start

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

پیکربندی درون برنامه ای یا کلاس های آزمایشی خود را برای تعامل با شبیه ساز Data Connect به شرح زیر تنظیم کنید.

جاوا اسکریپت
import { initializeApp } from "firebase/app";
import { connectorConfig } from "@name-of-package";
import { connectDataConnectEmulator, getDataConnect } from 'firebase/data-connect';

// TODO: Replace the following with your app's Firebase project configuration
const firebaseConfig = {
  //...
};

const app = initializeApp(firebaseConfig);

const dataConnect = getDataConnect(app, connectorConfig);
connectDataConnectEmulator(dataConnect, "localhost", 9399);

// Make calls from your app
  
کاتلین اندروید
val connector = MoviesConnector.instance

// Connect to the emulator on "10.0.2.2:9399"
connector.dataConnect.useEmulator()

// (Alternatively) if you're running your emulator on non-default port:
connector.dataConnect.useEmulator(port = 9999)

// Make calls from your app
  
iOS
let connector = DataConnect.dataConnect(DefaultConnectorClient.connectorConfig)

// Connect to the emulator on "127.0.0.1:9399"
connector.useEmulator()

// (alternatively) if you're running your emulator on non-default port:
connector.useEmulator(port: 9999)

// Make calls from your app
  

از شبیه ساز برای آزمایش و ادغام مداوم استفاده کنید

تصاویر Local Emulator Suite را اجرا کنید

نصب و پیکربندی Local Emulator Suite با کانتینرها در یک راه اندازی معمولی CI ساده است.

چند موضوع قابل توجه است:

  • باینری های شبیه ساز در ~/.cache/firebase/emulators/ نصب و ذخیره می شوند. ممکن است بخواهید این مسیر را به پیکربندی کش CI خود اضافه کنید تا از دانلودهای مکرر جلوگیری کنید.
  • اگر فایل firebase.json در مخزن خود ندارید، باید یک آرگومان خط فرمان به دستور emulators:start یا emulators:exec اضافه کنید تا مشخص کنید کدام شبیه سازها باید راه اندازی شوند. به عنوان مثال، --only dataconnect .

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

برای بازنشانی محیط های آزمایشی خود بین اجراها، Firebase توصیه می کند:

  • نوشتن جهش های اختصاصی برای رسیدگی به موارد زیر:
    • در راه اندازی، یک نمونه پایگاه داده محلی را با داده های شروع پر کنید.
    • در حذف، داده های اصلاح شده را از نمونه پایگاه داده پس از آزمون حذف کنید.

چگونه شبیه ساز Data Connect با تولید متفاوت است

شبیه ساز Data Connect بسیاری از ویژگی های محصول سمت سرور را شبیه سازی می کند. با این حال، چند استثنا وجود دارد که باید از آنها آگاه بود:

  • نسخه و پیکربندی دقیق PGLite ممکن است با نسخه نمونه تولیدی Cloud SQL شما متفاوت باشد.
  • اگر از شبیه‌ساز برای توسعه با ادغام pgvector و Vertex API Data Connect استفاده می‌کنید، تماس‌ها با Cloud Vertex API مستقیماً انجام می‌شود، نه از طریق یکپارچه‌سازی Vertex در Cloud SQL. با این حال، تماس‌ها با API تولیدی همچنان برقرار است، به این معنی که شما باید از یک پروژه Firebase واقعی استفاده کنید، نمی‌توانید از یک پروژه demo- استفاده کنید و هزینه‌های Vertex API متحمل می‌شوند.