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