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

ก่อนใช้โปรแกรมจำลอง 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 หรือ บทแนะนำอื่นๆ

รหัสโปรเจ็กต์สำหรับโปรเจ็กต์สาธิตจะมี demo- นำหน้า

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

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

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

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

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

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

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

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

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

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

  2. เริ่มใช้งาน 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 ทดสอบ

ฉันควรทำอย่างไรต่อไป