ก่อนใช้โปรแกรมจำลองส่วนขยายกับแอปของคุณ โปรดตรวจสอบว่าคุณ เข้าใจเวิร์กโฟลว์ Firebase Local Emulator Suite โดยรวม และคุณ ได้ติดตั้งและกำหนดค่า Local Emulator Suite และตรวจสอบ คำสั่ง CLI
คำแนะนำนี้ยังถือว่าคุณคุ้นเคยกับ ส่วนขยาย Firebase และวิธี ใช้ส่วนขยายในแอป Firebase ของคุณ
ฉันสามารถทำอะไรกับโปรแกรมจำลองส่วนขยายได้บ้าง
ด้วยโปรแกรมจำลองส่วนขยาย คุณสามารถติดตั้งและจัดการส่วนขยายในสภาพแวดล้อมท้องถิ่นที่ปลอดภัย และเข้าใจความสามารถของส่วนขยายได้ดียิ่งขึ้นในขณะที่ลดต้นทุนการเรียกเก็บเงิน โปรแกรมจำลองเรียกใช้ฟังก์ชันส่วนขยายของคุณแบบโลคัล รวมถึงฟังก์ชันที่เรียกใช้เหตุการณ์เบื้องหลังโดยใช้โปรแกรมจำลองสำหรับ Cloud Firestore, ฐานข้อมูลเรียลไทม์, ที่เก็บข้อมูลบนคลาวด์สำหรับ Firebase, การตรวจสอบสิทธิ์และ Pub/Sub และฟังก์ชันที่เรียกใช้ Eventarc ใน Cloud Functions v2
เลือกโครงการ Firebase
Firebase Local Emulator Suite จำลองผลิตภัณฑ์สำหรับโปรเจ็กต์ Firebase เดียว
ในการเลือกโปรเจ็กต์ที่จะใช้ ก่อนที่คุณจะเริ่มโปรแกรมจำลอง ให้เรียก firebase use
ใน CLI ในไดเร็กทอรีการทำงานของคุณ หรือคุณสามารถส่งแฟล็ก --project
ไปยังแต่ละคำสั่งจำลอง
Local Emulator Suite รองรับการจำลองโครงการ Firebase จริง และโครงการ สาธิต
ประเภทโครงการ | คุณสมบัติ | ใช้กับอีมูเลเตอร์ |
---|---|---|
จริง | โครงการ Firebase จริงคือโครงการที่คุณสร้างและกำหนดค่า (น่าจะผ่านคอนโซล Firebase) โปรเจ็กต์จริงมีทรัพยากรที่ใช้งานอยู่ เช่น อินสแตนซ์ฐานข้อมูล ที่เก็บข้อมูล ฟังก์ชัน หรือทรัพยากรอื่นๆ ที่คุณตั้งค่าสำหรับโปรเจ็กต์ Firebase นั้น | เมื่อทำงานกับโปรเจ็กต์ Firebase จริง คุณสามารถเรียกใช้โปรแกรมจำลองสำหรับผลิตภัณฑ์ใดๆ หรือทั้งหมดที่รองรับ สำหรับผลิตภัณฑ์ใดๆ ที่คุณไม่ได้เลียนแบบ แอปและโค้ดของคุณจะโต้ตอบกับทรัพยากร ที่ใช้งานอยู่ (อินสแตนซ์ฐานข้อมูล บัคเก็ตพื้นที่เก็บข้อมูล ฟังก์ชัน ฯลฯ) |
การสาธิต | โครงการ Firebase สาธิตไม่มีการกำหนดค่า Firebase จริง และไม่มีทรัพยากรที่ใช้งานจริง โครงการเหล่านี้มักจะเข้าถึงได้ผ่าน codelabs หรือบทช่วยสอนอื่นๆ รหัสโครงการสำหรับโครงการสาธิตมีคำนำหน้า | เมื่อทำงานกับโปรเจ็กต์ Firebase สาธิต แอปและโค้ดของคุณจะโต้ตอบกับโปรแกรมจำลอง เท่านั้น หากแอปของคุณพยายามโต้ตอบกับทรัพยากรที่โปรแกรมจำลองไม่ได้ทำงานอยู่ โค้ดนั้นจะล้มเหลว |
เราขอแนะนำให้คุณใช้โครงการสาธิตหากเป็นไปได้ สิทธิประโยชน์รวมถึง:
- ตั้งค่าได้ง่ายขึ้น เนื่องจากคุณสามารถรันโปรแกรมจำลองได้โดยไม่ต้องสร้างโปรเจ็กต์ Firebase
- ความปลอดภัยที่แข็งแกร่งยิ่งขึ้น เนื่องจากหากรหัสของคุณเรียกใช้ทรัพยากรที่ไม่ได้จำลอง (การผลิต) โดยไม่ตั้งใจ จะไม่มีโอกาสที่ข้อมูลจะเปลี่ยนแปลง ใช้งาน และเรียกเก็บเงิน
- การสนับสนุนแบบออฟไลน์ที่ดีกว่า เนื่องจากไม่จำเป็นต้องเข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลดการกำหนดค่า SDK ของคุณ
ติดตั้งและประเมินส่วนขยาย
การใช้โปรแกรมจำลองส่วนขยายเพื่อประเมินว่าส่วนขยายตรงตามความต้องการของคุณนั้นตรงไปตรงมาหรือไม่
สมมติว่าคุณสนใจ ส่วนขยาย Trigger Email ( firestore-send-email
) แม้ว่าเวิร์กโฟลว์ต่อไปนี้จะครอบคลุมส่วนขยายใดก็ตาม เมื่อเรียกใช้ด้วยโปรแกรมจำลองในเครื่อง อีเมลทริกเกอร์จะใช้โปรแกรมจำลอง Cloud Firestore และ Cloud Functions โดยอัตโนมัติ
ในการประเมินส่วนขยายในเครื่อง:
เพิ่มส่วนขยายในไฟล์ Manifest ของส่วนขยายในเครื่อง รายการส่วนขยายคือรายการของอินสแตนซ์ส่วนขยายและการกำหนดค่า
firebase ext:install --local firebase/firestore-send-email
การเรียกใช้คำสั่งด้านบนจะแจ้งให้คุณกำหนดค่าส่วนขยาย
firebase/firestore-send-email
เวอร์ชันล่าสุด และบันทึกการกำหนดค่าลงในรายการ แต่จะไม่ปรับใช้การกำหนดค่ากับโครงการของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดู ที่จัดการการกำหนดค่าส่วนขยายด้วยรายการเริ่ม Local Emulator Suite ตามปกติ
firebase emulators:start
ตอนนี้ เมื่อใช้อินสแตนซ์ส่วนขยายของ firestore-send-email
ที่แสดงในรายการของคุณ Local Emulator Suite จะดาวน์โหลดซอร์สโค้ดของส่วนขยายนั้นไปที่ ~/.cache/firebase/extensions
เมื่อดาวน์โหลด sourcees แล้ว Local Emulator Suite จะเริ่มทำงาน และคุณจะสามารถเปิดใช้ฟังก์ชันที่เรียกทำงานอยู่เบื้องหลังของส่วนขยายใดๆ และเชื่อมต่อแอปของคุณกับ Local Emulator Suite เพื่อทดสอบการรวมเข้ากับแอปของคุณ
คุณสามารถใช้ Emulator Suite UI เพื่อเพิ่มข้อมูลไปยังคอลเลกชันเอกสารอีเมลและตั้งค่าทรัพยากรแบ็กเอนด์อื่นๆ ตามที่กำหนดโดยส่วนขยายอีเมลทริกเกอร์
หรือสำหรับสภาพแวดล้อมการทดสอบที่ไม่มีการโต้ตอบ เช่น เวิร์กโฟลว์การผสานรวมอย่างต่อเนื่อง คุณสามารถเขียนสคริปต์ทดสอบเพื่อประเมินส่วนขยายที่เติมข้อมูลที่จำเป็นของ Cloud Firestore และทริกเกอร์ฟังก์ชันในขั้นตอนอื่นๆ จากนั้นคุณจะเรียกใช้ Local Emulator Suite เพื่อรันสคริปต์ทดสอบของคุณ:
firebase emulators:exec my-test.sh
การทดสอบด้วยโปรแกรมจำลองส่วนขยายแตกต่างจากเวอร์ชันที่ใช้งานจริงอย่างไร
โปรแกรมจำลองส่วนขยายช่วยให้คุณทดสอบส่วนขยายในลักษณะที่ใกล้เคียงกับประสบการณ์การใช้งานจริง อย่างไรก็ตาม มีความแตกต่างจากพฤติกรรมการผลิตอยู่บ้าง
คลาวด์ไอแอม
Firebase Emulator Suite ไม่พยายามทำซ้ำหรือปฏิบัติตามพฤติกรรมที่เกี่ยวข้องกับ IAM สำหรับการเรียกใช้ Emulators ปฏิบัติตามกฎความปลอดภัยของ Firebase ที่มีให้ แต่ในสถานการณ์ที่ปกติแล้ว IAM จะถูกใช้ เช่น เพื่อตั้งค่า Cloud Functions ที่เรียกใช้บัญชีบริการและด้วยเหตุนี้ การอนุญาต Emulator จะไม่สามารถกำหนดค่าได้ และจะใช้บัญชีที่มีอยู่ทั่วโลกในเครื่องผู้พัฒนาของคุณ คล้ายกับการรันสคริปต์ในเครื่องโดยตรง
ข้อจำกัดประเภททริกเกอร์
ปัจจุบัน Firebase Local Emulator Suite รองรับเฉพาะฟังก์ชันที่ทริกเกอร์คำขอ HTTP, ทริกเกอร์เหตุการณ์ที่กำหนดเองของ Eventarc สำหรับส่วนขยาย และฟังก์ชันที่ทริกเกอร์เหตุการณ์เบื้องหลังสำหรับ Cloud Firestore, ฐานข้อมูลเรียลไทม์, Cloud Storage สำหรับ Firebase, การตรวจสอบสิทธิ์ และ Pub/Sub หากต้องการประเมินส่วนขยายที่ใช้ฟังก์ชันทริกเกอร์ประเภทอื่นๆ คุณต้อง ติดตั้งส่วนขยาย ในโปรเจ็กต์ Firebase ทดสอบ
อะไรต่อไป?
- สำหรับชุดวิดีโอที่คัดสรรมาอย่างดีและตัวอย่างวิธีใช้โดยละเอียด โปรดติดตาม เพลย์ลิสต์การฝึกอบรม Firebase Emulators