ใช้โปรแกรมจำลอง 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- projectID หรือตรวจสอบว่าโค้ดไคลเอ็นต์ได้รับการติดตั้งเครื่องมือเพื่อเชื่อมต่อกับโปรแกรมจำลอง ตามที่อธิบายไว้ในส่วนถัดไป

เริ่มโปรแกรมจำลอง

หากคุณเรียกใช้โปรแกรมจำลองแบบไม่โต้ตอบ เช่น สำหรับเวิร์กโฟลว์ CI/CD ให้เริ่มด้วยตัวเลือก exec

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

หากคุณผสานรวมการค้นหาและการกลายพันธุ์ที่กําหนดไว้ล่วงหน้าในโค้ดไคลเอ็นต์และใช้โปรแกรมจําลองสําหรับการทดสอบไคลเอ็นต์โดยเฉพาะ คุณจะใช้ตัวเลือก start สำหรับการทํางานแบบอินเทอร์แอกทีฟได้ คุณยังเริ่มโปรแกรมจำลองจากส่วนขยาย VS Code ได้อีกด้วย

firebase emulators:start

ใช้โค้ดไคลเอ็นต์เพื่อพูดคุยกับโปรแกรมจำลอง

ตั้งค่าการกําหนดค่าในแอปหรือคลาสทดสอบเพื่อโต้ตอบกับโปรแกรมจำลอง Data Connect ดังนี้

JavaScript
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
  
Kotlin สำหรับ Android
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 ConnectEmulator จะจำลองฟีเจอร์ต่างๆ ของผลิตภัณฑ์ฝั่งเซิร์ฟเวอร์ อย่างไรก็ตาม โปรดทราบว่ามีข้อยกเว้นบางประการดังนี้

  • เวอร์ชันและการกำหนดค่าโดยละเอียดของ PGLite อาจแตกต่างจากเวอร์ชันของอินสแตนซ์ Cloud SQL เวอร์ชันที่ใช้งานจริง
  • หากคุณใช้โปรแกรมจำลองเพื่อพัฒนาด้วยการผสานรวม pgvector และ Vertex API ของ Data Connect ระบบจะเรียกใช้ Cloud Vertex API โดยตรง ไม่ใช่ผ่านการผสานรวม Vertex ของ Cloud SQL อย่างไรก็ตาม ระบบจะยังคงเรียกใช้ API เวอร์ชันที่ใช้งานจริงอยู่ ซึ่งหมายความว่าคุณต้องใช้โปรเจ็กต์ Firebase จริง จะใช้โปรเจ็กต์ demo- ไม่ได้ และจะต้องเสียค่าใช้จ่ายสำหรับ Vertex API