ก่อนใช้โปรแกรมจำลอง Extensions กับแอป โปรดตรวจสอบว่า คุณเข้าใจเวิร์กโฟลว์ Firebase Local Emulator Suite โดยรวม คุณติดตั้งและกำหนดค่าแล้ว Local Emulator Suite และตรวจสอบคำสั่ง CLI
คู่มือนี้จะถือว่าคุณคุ้นเคยกับ Firebase Extensions แล้ว และวิธีใช้ในแอป Firebase
ฉันใช้โปรแกรมจำลอง Extensions ทำอะไรได้บ้าง
เมื่อใช้โปรแกรมจำลอง Extensions คุณจะสามารถติดตั้งและจัดการส่วนขยายใน สร้างสภาพแวดล้อมที่ปลอดภัยภายในบริษัท และเข้าใจความสามารถที่มีมากขึ้น พร้อมทั้งลด ค่าใช้จ่ายการเรียกเก็บเงินของคุณ โปรแกรมจำลองจะเรียกใช้ฟังก์ชันของส่วนขยายภายในเครื่อง ซึ่งรวมถึง ฟังก์ชันที่ทริกเกอร์โดยเหตุการณ์เบื้องหลังโดยใช้โปรแกรมจำลองสำหรับ Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication และ 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
ติดตั้งและประเมินส่วนขยาย
การใช้โปรแกรมจำลอง Extensions เพื่อประเมินว่าส่วนขยายเป็นไปตาม ก็ทำได้ง่าย
สมมติว่าคุณสนใจอีเมลทริกเกอร์
(firestore-send-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
ตอนนี้กำลังใช้อินสแตนซ์ของส่วนขยาย firestore-send-email
ที่แสดงอยู่ใน
ไฟล์ Manifest ของคุณ 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
การทดสอบด้วยโปรแกรมจำลอง Extensions แตกต่างจากเวอร์ชันที่ใช้งานจริงอย่างไร
โปรแกรมจำลอง Extensions ช่วยให้คุณทดสอบส่วนขยายได้ในลักษณะใกล้เคียง ตรงกับเวอร์ชันที่ใช้งานจริง แต่ก็มีข้อแตกต่างบางอย่างจาก พฤติกรรมการผลิต
Cloud IAM
Firebase Emulator Suite จะไม่พยายามจำลองหรือทำตาม พฤติกรรมที่เกี่ยวกับ 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