ก่อนใช้โปรแกรมจำลอง 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 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 เพื่อประเมินว่าส่วนขยายตรงกับความต้องการ ของคุณหรือไม่นั้นทำได้ง่าย
สมมติว่าคุณสนใจส่วนขยาย Trigger Email
(firestore-send-email)
แม้ว่าเวิร์กโฟลว์ต่อไปนี้จะครอบคลุมส่วนขยายทั้งหมดก็ตาม เมื่อเรียกใช้กับโปรแกรมจำลองภายในเครื่อง
Trigger 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
ตอนนี้ Local Emulator Suite จะดาวน์โหลดซอร์สโค้ดของอินสแตนซ์ส่วนขยาย firestore-send-email ที่ระบุไว้ใน
ไฟล์ Manifest ไปยัง ~/.cache/firebase/extensions เมื่อดาวน์โหลดซอร์สโค้ดแล้ว Local Emulator Suite จะเริ่มทำงาน และคุณจะสามารถทริกเกอร์ฟังก์ชันที่ทริกเกอร์โดยเหตุการณ์เบื้องหลังของส่วนขยายและเชื่อมต่อแอปกับ Local Emulator Suite เพื่อทดสอบการผสานรวมกับแอปได้
คุณสามารถใช้ Emulator Suite UI เพื่อเพิ่มข้อมูลลงในคอลเล็กชันเอกสารอีเมล และตั้งค่าทรัพยากรแบ็กเอนด์อื่นๆ ตามที่ส่วนขยาย Trigger Email กำหนด
หรือสำหรับสภาพแวดล้อมการทดสอบแบบไม่โต้ตอบ เช่น เวิร์กโฟลว์การรวมอย่างต่อเนื่อง คุณสามารถเขียนสคริปต์การทดสอบเพื่อประเมินส่วนขยาย ซึ่งจะดำเนินการต่างๆ เช่น ป้อนข้อมูลที่จำเป็น 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