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

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

นอกจากนี้ คู่มือนี้ยังถือว่าคุณคุ้นเคยกับ Firebase Extensions และวิธีใช้ 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 โปรเจ็กต์เดียว

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

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

ประเภทโปรเจ็กต์ ฟีเจอร์ ใช้กับโปรแกรมจำลอง
จริง

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

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

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

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

เดโม

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

รหัสโปรเจ็กต์ของโปรเจ็กต์เดโมจะมีคำนำหน้า demo-

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

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

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

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

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

สมมติว่าคุณสนใจส่วนขยายอีเมลทริกเกอร์ (firestore-send-email) แม้ว่าเวิร์กโฟลว์ต่อไปนี้จะครอบคลุมส่วนขยายทั้งหมดก็ตาม เมื่อเรียกใช้กับโปรแกรมจำลองในเครื่อง Trigger 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 จะใช้อินสแตนซ์ส่วนขยาย firestore-send-email ที่แสดงในไฟล์ Manifest เพื่อดาวน์โหลดซอร์สโค้ดของส่วนขยายนั้นไปยัง ~/.cache/firebase/extensions เมื่อดาวน์โหลดแหล่งที่มาแล้ว 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 ทดสอบ

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