ก่อนใช้โปรแกรมจำลอง 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 หรือบทแนะนำอื่นๆ รหัสโปรเจ็กต์ของโปรเจ็กต์เดโมจะมีคำนำหน้า |
เมื่อใช้โปรเจ็กต์ Firebase สาธิต แอปและโค้ดจะโต้ตอบกับโปรแกรมจำลองเท่านั้น หากแอปพยายามโต้ตอบกับทรัพยากรที่อีมูเลเตอร์ไม่ได้ทำงานอยู่ โค้ดดังกล่าวจะใช้งานไม่ได้ |
เราขอแนะนำให้คุณใช้โปรเจ็กต์สาธิตทุกครั้งที่ทำได้ สิทธิประโยชน์มีดังนี้
- ตั้งค่าได้ง่ายขึ้นเนื่องจากคุณสามารถเรียกใช้โปรแกรมจำลองได้โดยไม่ต้องสร้างโปรเจ็กต์ Firebase
- ความปลอดภัยที่มากขึ้น เนื่องจากหากโค้ดเรียกใช้ทรัพยากรที่ไม่ใช่การจําลอง (เวอร์ชันที่ใช้งานจริง) โดยไม่ได้ตั้งใจ จะไม่มีการเปลี่ยนแปลงข้อมูล การใช้งาน และการเรียกเก็บเงิน
- รองรับการทำงานแบบออฟไลน์ได้ดียิ่งขึ้น เนื่องจากไม่จําเป็นต้องเข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลดการกําหนดค่า SDK
ติดตั้งและประเมินส่วนขยาย
การใช้Extensionsโปรแกรมจําลองเพื่อประเมินว่าส่วนขยายตรงกับความต้องการของคุณหรือไม่นั้นทําได้ง่ายๆ
สมมติว่าคุณสนใจส่วนขยายอีเมลทริกเกอร์ (firestore-send-email
) แม้ว่าเวิร์กโฟลว์ต่อไปนี้จะครอบคลุมส่วนขยายทั้งหมดก็ตาม เมื่อเรียกใช้กับโปรแกรมจำลองในเครื่อง Trigger Email จะใช้โปรแกรมจำลอง Cloud Firestore และ Cloud Functions โดยอัตโนมัติ
วิธีประเมินชิ้นงานในเครื่อง
เพิ่มส่วนขยายลงในไฟล์ Manifest ของส่วนขยายในเครื่อง ไฟล์ Manifest ของส่วนขยายคือรายการอินสแตนซ์ส่วนขยายและการกำหนดค่าของอินสแตนซ์เหล่านั้น
firebase ext:install --local firebase/firestore-send-email
การใช้คําสั่งข้างต้นจะแจ้งให้คุณกําหนดค่าส่วนขยาย
firebase/firestore-send-email
เวอร์ชันล่าสุดและบันทึกการกําหนดค่าลงในไฟล์ Manifest แต่จะไม่ทําให้ใช้งานการกําหนดค่าในโปรเจ็กต์ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่จัดการการกำหนดค่าส่วนขยายด้วยไฟล์ Manifestเริ่ม 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 ทดสอบ
ฉันควรทำอย่างไรต่อไป
- ดูชุดวิดีโอที่ดูแลและตัวอย่างวิธีใช้อย่างละเอียดได้ในเพลย์ลิสต์การฝึกของ Firebase Emulators