از شبیه ساز 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 و تنظیم دایرکتوری پروژه

  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 از شما می‌خواهد که یک پروژه فایربیس را انتخاب یا ایجاد کنید. اگر یک پروژه موجود را که با Data Connect در کنسول Firebase راه‌اندازی کرده‌اید، انتخاب کنید، پیکربندی که در آنجا انتخاب کرده‌اید پیشنهاد می‌شود.

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

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

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

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

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

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

شبیه‌ساز را شروع کنید

اگر شبیه‌ساز را به صورت غیر تعاملی اجرا می‌کنید، مثلاً برای گردش‌های کاری 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
  
آی‌او‌اس
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 توصیه می‌کند:

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

تفاوت شبیه‌ساز Data Connect با نسخه اصلی

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

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