获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

ใช้โปรแกรมจำลองส่วนขยายเพื่อประเมินส่วนขยาย

ก่อนใช้โปรแกรมจำลองส่วนขยายกับแอปของคุณ ตรวจสอบให้แน่ใจว่าคุณ เข้าใจเวิร์กโฟลว์ Firebase Local Emulator Suite โดยรวม และคุณ ติดตั้งและกำหนดค่า Local Emulator Suite และตรวจสอบ คำสั่ง CLI

คู่มือนี้ยังถือว่าคุณคุ้นเคยกับ Firebase Extensions และวิธี ใช้ส่วนขยายเหล่านี้ในแอป Firebase

ฉันจะทำอะไรกับโปรแกรมจำลองส่วนขยายได้บ้าง

ด้วยโปรแกรมจำลองส่วนขยาย คุณสามารถติดตั้งและจัดการส่วนขยายในสภาพแวดล้อมภายในที่ปลอดภัย และเข้าใจถึงความสามารถของส่วนขยายเหล่านั้นได้ดียิ่งขึ้นในขณะที่ลดต้นทุนการเรียกเก็บเงิน โปรแกรมจำลองจะเรียกใช้ฟังก์ชันของส่วนขยายในเครื่อง รวมถึงฟังก์ชันที่ทริกเกอร์เหตุการณ์เบื้องหลังโดยใช้โปรแกรมจำลองสำหรับ Cloud Firestore, ฐานข้อมูลเรียลไทม์, ที่เก็บข้อมูลบนคลาวด์สำหรับ Firebase, การตรวจสอบสิทธิ์และ Pub/Sub และฟังก์ชันที่ทริกเกอร์ด้วย Eventarc ที่ใช้งานใน Cloud Function v2

เลือกโปรเจ็กต์ Firebase

Firebase Local Emulator Suite จำลองผลิตภัณฑ์สำหรับโปรเจ็กต์ Firebase เดียว

ในการเลือกโปรเจ็กต์ที่จะใช้ ก่อนที่คุณจะเริ่มอีมูเลเตอร์ ใน CLI ให้รัน firebase use ในไดเร็กทอรีการทำงานของคุณ หรือคุณสามารถส่ง --project แฟล็กไปยังแต่ละคำสั่งอีมูเลเตอร์

Local Emulator Suite รองรับการจำลองโปรเจ็กต์ Firebase จริง และโปรเจ็กต์ สาธิต

ประเภทโครงการ คุณสมบัติ ใช้กับอีมูเลเตอร์
จริง

โปรเจ็กต์ Firebase จริงคือโปรเจ็กต์ที่คุณสร้างและกำหนดค่า (ส่วนใหญ่ผ่านคอนโซล Firebase)

โปรเจ็กต์จริงมีทรัพยากรจริง เช่น อินสแตนซ์ฐานข้อมูล ที่เก็บข้อมูลของพื้นที่เก็บข้อมูล ฟังก์ชัน หรือทรัพยากรอื่นๆ ที่คุณตั้งค่าสำหรับโปรเจ็กต์ Firebase นั้น

เมื่อทำงานกับโปรเจ็กต์ Firebase จริง คุณสามารถเรียกใช้โปรแกรมจำลองสำหรับผลิตภัณฑ์ที่รองรับใดๆ หรือทั้งหมดได้

สำหรับผลิตภัณฑ์ใดๆ ที่คุณไม่ได้จำลอง แอปและโค้ดของคุณจะโต้ตอบกับทรัพยากรที่ใช้งาน อยู่ (อินสแตนซ์ฐานข้อมูล ที่เก็บข้อมูล ฟังก์ชัน ฯลฯ)

การสาธิต

โปรเจ็กต์ Firebase สาธิตไม่มีการกำหนดค่า Firebase จริง และไม่มีทรัพยากรจริง โครงการเหล่านี้มักจะเข้าถึงได้ผ่าน codelabs หรือบทช่วยสอนอื่นๆ

รหัสโครงการสำหรับโครงการสาธิตมี demo- หน้าการสาธิต

เมื่อทำงานกับโปรเจ็กต์สาธิต Firebase แอปและโค้ดของคุณจะโต้ตอบกับอีมูเลเตอร์ เท่านั้น หากแอปของคุณพยายามโต้ตอบกับทรัพยากรที่ไม่ได้ใช้งานโปรแกรมจำลอง โค้ดนั้นจะล้มเหลว

เราขอแนะนำให้คุณใช้โปรเจ็กต์สาธิตในทุกที่ที่ทำได้ ประโยชน์รวมถึง:

  • ตั้งค่าได้ง่ายขึ้น เนื่องจากคุณสามารถเรียกใช้อีมูเลเตอร์ได้โดยไม่ต้องสร้างโปรเจ็กต์ Firebase เลย
  • ความปลอดภัยที่เข้มงวดยิ่งขึ้น เนื่องจากหากรหัสของคุณเรียกใช้ทรัพยากรที่ไม่ได้จำลอง (การผลิต) โดยไม่ได้ตั้งใจ จะไม่มีโอกาสเปลี่ยนแปลงข้อมูล การใช้งาน และการเรียกเก็บเงิน
  • การสนับสนุนออฟไลน์ที่ดีขึ้น เนื่องจากไม่จำเป็นต้องเข้าถึงอินเทอร์เน็ตเพื่อดาวน์โหลดการกำหนดค่า SDK ของคุณ

ติดตั้งและประเมินส่วนขยาย

การใช้โปรแกรมจำลองส่วนขยายเพื่อประเมินว่าส่วนขยายตรงตามความต้องการของคุณหรือไม่นั้นตรงไปตรงมา

สมมติว่าคุณสนใจ ส่วนขยาย อีเมลทริกเกอร์ ( firestore-send-email ) แม้ว่าเวิร์กโฟลว์ต่อไปนี้จะครอบคลุมส่วนขยายก็ตาม เมื่อรันด้วยอีมูเลเตอร์ในเครื่อง อีเมลทริกเกอร์จะใช้ประโยชน์จากตัวจำลอง Cloud Firestore และ Cloud Functions โดยอัตโนมัติ

วิธีประเมินส่วนขยายในเครื่อง:

  1. เพิ่มส่วนขยายลงในรายการส่วนขยายในเครื่อง รายการส่วนขยายคือรายการของอินสแตนซ์ส่วนขยายและการกำหนดค่า

    firebase ext:install --local firebase/firestore-send-email

    การเรียกใช้คำสั่งข้างต้นจะแจ้งให้คุณกำหนดค่าส่วนขยาย firebase/firestore-send-email เวอร์ชันล่าสุด และบันทึกการกำหนดค่าลงในรายการ แต่จะไม่ปรับใช้การกำหนดค่ากับโปรเจ็กต์ของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ จัดการการกำหนดค่าส่วนขยายด้วยรายการ

  2. เริ่ม 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, ทริกเกอร์เหตุการณ์ที่กำหนดเองของ Eventarc สำหรับส่วนขยาย และฟังก์ชันที่ทริกเกอร์เหตุการณ์เบื้องหลังสำหรับ Cloud Firestore, ฐานข้อมูลเรียลไทม์, ที่เก็บข้อมูลบนคลาวด์สำหรับ Firebase, การตรวจสอบสิทธิ์ และ Pub/Sub ในการประเมินส่วนขยายที่ใช้ฟังก์ชันที่ทริกเกอร์ประเภทอื่นๆ คุณต้อง ติดตั้งส่วนขยาย ในโปรเจ็กต์ Firebase ทดสอบ

อะไรต่อไป?