ใช้โปรแกรมจำลองส่วนขยายเพื่อประเมินส่วนขยาย

ก่อนใช้โปรแกรมจำลองส่วนขยายกับแอปของคุณ โปรดตรวจสอบว่าคุณ เข้าใจเวิร์กโฟลว์ Firebase Local Emulator Suite โดยรวม และคุณ ได้ติดตั้งและกำหนดค่า Local Emulator Suite และตรวจสอบ คำสั่ง CLI

คำแนะนำนี้ยังถือว่าคุณคุ้นเคยกับ ส่วนขยาย Firebase และวิธี ใช้ส่วนขยายในแอป Firebase ของคุณ

ฉันสามารถทำอะไรกับโปรแกรมจำลองส่วนขยายได้บ้าง

ด้วยโปรแกรมจำลองส่วนขยาย คุณสามารถติดตั้งและจัดการส่วนขยายในสภาพแวดล้อมท้องถิ่นที่ปลอดภัย และเข้าใจความสามารถของส่วนขยายได้ดียิ่งขึ้นในขณะที่ลดต้นทุนการเรียกเก็บเงิน โปรแกรมจำลองเรียกใช้ฟังก์ชันส่วนขยายของคุณแบบโลคัล รวมถึงฟังก์ชันที่เรียกใช้เหตุการณ์เบื้องหลังโดยใช้โปรแกรมจำลองสำหรับ Cloud Firestore, ฐานข้อมูลเรียลไทม์, ที่เก็บข้อมูลบนคลาวด์สำหรับ Firebase, การตรวจสอบสิทธิ์และ Pub/Sub และฟังก์ชันที่เรียกใช้ Eventarc ใน Cloud Functions v2

เลือกโครงการ Firebase

Firebase Local Emulator Suite จำลองผลิตภัณฑ์สำหรับโปรเจ็กต์ Firebase เดียว

ในการเลือกโปรเจ็กต์ที่จะใช้ ก่อนที่คุณจะเริ่มโปรแกรมจำลอง ให้เรียก firebase use ใน CLI ในไดเร็กทอรีการทำงานของคุณ หรือคุณสามารถส่งแฟล็ก --project ไปยังแต่ละคำสั่งจำลอง

Local Emulator Suite รองรับการจำลองโครงการ Firebase จริง และโครงการ สาธิต

ประเภทโครงการ คุณสมบัติ ใช้กับอีมูเลเตอร์
จริง

โครงการ Firebase จริงคือโครงการที่คุณสร้างและกำหนดค่า (น่าจะผ่านคอนโซล Firebase)

โปรเจ็กต์จริงมีทรัพยากรที่ใช้งานอยู่ เช่น อินสแตนซ์ฐานข้อมูล ที่เก็บข้อมูล ฟังก์ชัน หรือทรัพยากรอื่นๆ ที่คุณตั้งค่าสำหรับโปรเจ็กต์ Firebase นั้น

เมื่อทำงานกับโปรเจ็กต์ Firebase จริง คุณสามารถเรียกใช้โปรแกรมจำลองสำหรับผลิตภัณฑ์ใดๆ หรือทั้งหมดที่รองรับ

สำหรับผลิตภัณฑ์ใดๆ ที่คุณไม่ได้เลียนแบบ แอปและโค้ดของคุณจะโต้ตอบกับทรัพยากร ที่ใช้งานอยู่ (อินสแตนซ์ฐานข้อมูล บัคเก็ตพื้นที่เก็บข้อมูล ฟังก์ชัน ฯลฯ)

การสาธิต

โครงการ Firebase สาธิตไม่มีการกำหนดค่า Firebase จริง และไม่มีทรัพยากรที่ใช้งานจริง โครงการเหล่านี้มักจะเข้าถึงได้ผ่าน codelabs หรือบทช่วยสอนอื่นๆ

รหัสโครงการสำหรับโครงการสาธิตมีคำนำหน้า demo-

เมื่อทำงานกับโปรเจ็กต์ Firebase สาธิต แอปและโค้ดของคุณจะโต้ตอบกับโปรแกรมจำลอง เท่านั้น หากแอปของคุณพยายามโต้ตอบกับทรัพยากรที่โปรแกรมจำลองไม่ได้ทำงานอยู่ โค้ดนั้นจะล้มเหลว

เราขอแนะนำให้คุณใช้โครงการสาธิตหากเป็นไปได้ สิทธิประโยชน์รวมถึง:

  • ตั้งค่าได้ง่ายขึ้น เนื่องจากคุณสามารถรันโปรแกรมจำลองได้โดยไม่ต้องสร้างโปรเจ็กต์ Firebase
  • ความปลอดภัยที่แข็งแกร่งยิ่งขึ้น เนื่องจากหากรหัสของคุณเรียกใช้ทรัพยากรที่ไม่ได้จำลอง (การผลิต) โดยไม่ตั้งใจ จะไม่มีโอกาสที่ข้อมูลจะเปลี่ยนแปลง ใช้งาน และเรียกเก็บเงิน
  • การสนับสนุนแบบออฟไลน์ที่ดีกว่า เนื่องจากไม่จำเป็นต้องเข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลดการกำหนดค่า SDK ของคุณ

ติดตั้งและประเมินส่วนขยาย

การใช้โปรแกรมจำลองส่วนขยายเพื่อประเมินว่าส่วนขยายตรงตามความต้องการของคุณนั้นตรงไปตรงมาหรือไม่

สมมติว่าคุณสนใจ ส่วนขยาย Trigger Email ( firestore-send-email ) แม้ว่าเวิร์กโฟลว์ต่อไปนี้จะครอบคลุมส่วนขยายใดก็ตาม เมื่อเรียกใช้ด้วยโปรแกรมจำลองในเครื่อง อีเมลทริกเกอร์จะใช้โปรแกรมจำลอง Cloud Firestore และ Cloud Functions โดยอัตโนมัติ

ในการประเมินส่วนขยายในเครื่อง:

  1. เพิ่มส่วนขยายในไฟล์ Manifest ของส่วนขยายในเครื่อง รายการส่วนขยายคือรายการของอินสแตนซ์ส่วนขยายและการกำหนดค่า

    firebase ext:install --local firebase/firestore-send-email

    การเรียกใช้คำสั่งด้านบนจะแจ้งให้คุณกำหนดค่าส่วนขยาย firebase/firestore-send-email เวอร์ชันล่าสุด และบันทึกการกำหนดค่าลงในรายการ แต่จะไม่ปรับใช้การกำหนดค่ากับโครงการของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดู ที่จัดการการกำหนดค่าส่วนขยายด้วยรายการ

  2. เริ่ม Local Emulator Suite ตามปกติ

    firebase emulators:start

ตอนนี้ เมื่อใช้อินสแตนซ์ส่วนขยายของ firestore-send-email ที่แสดงในรายการของคุณ Local Emulator Suite จะดาวน์โหลดซอร์สโค้ดของส่วนขยายนั้นไปที่ ~/.cache/firebase/extensions เมื่อดาวน์โหลด sourcees แล้ว Local Emulator Suite จะเริ่มทำงาน และคุณจะสามารถเปิดใช้ฟังก์ชันที่เรียกทำงานอยู่เบื้องหลังของส่วนขยายใดๆ และเชื่อมต่อแอปของคุณกับ Local Emulator Suite เพื่อทดสอบการรวมเข้ากับแอปของคุณ

คุณสามารถใช้ Emulator Suite UI เพื่อเพิ่มข้อมูลไปยังคอลเลกชันเอกสารอีเมลและตั้งค่าทรัพยากรแบ็กเอนด์อื่นๆ ตามที่กำหนดโดยส่วนขยายอีเมลทริกเกอร์

หรือสำหรับสภาพแวดล้อมการทดสอบที่ไม่มีการโต้ตอบ เช่น เวิร์กโฟลว์การผสานรวมอย่างต่อเนื่อง คุณสามารถเขียนสคริปต์ทดสอบเพื่อประเมินส่วนขยายที่เติมข้อมูลที่จำเป็นของ Cloud Firestore และทริกเกอร์ฟังก์ชันในขั้นตอนอื่นๆ จากนั้นคุณจะเรียกใช้ Local Emulator Suite เพื่อรันสคริปต์ทดสอบของคุณ:

firebase emulators:exec my-test.sh

การทดสอบด้วยโปรแกรมจำลองส่วนขยายแตกต่างจากเวอร์ชันที่ใช้งานจริงอย่างไร

โปรแกรมจำลองส่วนขยายช่วยให้คุณทดสอบส่วนขยายในลักษณะที่ใกล้เคียงกับประสบการณ์การใช้งานจริง อย่างไรก็ตาม มีความแตกต่างจากพฤติกรรมการผลิตอยู่บ้าง

คลาวด์ไอแอม

Firebase Emulator Suite ไม่พยายามทำซ้ำหรือปฏิบัติตามพฤติกรรมที่เกี่ยวข้องกับ IAM สำหรับการเรียกใช้ Emulators ปฏิบัติตามกฎความปลอดภัยของ Firebase ที่มีให้ แต่ในสถานการณ์ที่ปกติแล้ว IAM จะถูกใช้ เช่น เพื่อตั้งค่า Cloud Functions ที่เรียกใช้บัญชีบริการและด้วยเหตุนี้ การอนุญาต Emulator จะไม่สามารถกำหนดค่าได้ และจะใช้บัญชีที่มีอยู่ทั่วโลกในเครื่องผู้พัฒนาของคุณ คล้ายกับการรันสคริปต์ในเครื่องโดยตรง

ข้อจำกัดประเภททริกเกอร์

ปัจจุบัน Firebase Local Emulator Suite รองรับเฉพาะฟังก์ชันที่ทริกเกอร์คำขอ HTTP, ทริกเกอร์เหตุการณ์ที่กำหนดเองของ Eventarc สำหรับส่วนขยาย และฟังก์ชันที่ทริกเกอร์เหตุการณ์เบื้องหลังสำหรับ Cloud Firestore, ฐานข้อมูลเรียลไทม์, Cloud Storage สำหรับ Firebase, การตรวจสอบสิทธิ์ และ Pub/Sub หากต้องการประเมินส่วนขยายที่ใช้ฟังก์ชันทริกเกอร์ประเภทอื่นๆ คุณต้อง ติดตั้งส่วนขยาย ในโปรเจ็กต์ Firebase ทดสอบ

อะไรต่อไป?