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