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

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

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

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

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

เลือกโปรเจ็กต์ Firebase

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

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

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

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

โปรเจ็กต์ Firebase จริงคือโปรเจ็กต์ที่คุณสร้างและกำหนดค่า (ส่วนใหญ่จะผ่านคอนโซล Firebase)

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

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

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

การสาธิต

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

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

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

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

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

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

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

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

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

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

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

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

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

    firebase emulators:start

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

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

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

firebase emulators:exec my-test.sh

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

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

คลาวด์ไอเอเอ็ม

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

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

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

อะไรต่อไป?