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

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

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

ฉันใช้โปรแกรมจำลอง Extensions ทำอะไรได้บ้าง

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

เลือกโปรเจ็กต์ 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

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

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

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

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

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

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

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

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

    firebase emulators:start

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

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

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

firebase emulators:exec my-test.sh

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

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

Cloud IAM

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

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

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

ฉันควรทำอย่างไรต่อไป