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