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