จัดการการกำหนดค่าโปรเจ็กต์ด้วยไฟล์ Manifest ของส่วนขยาย

ไฟล์ Manifest ของส่วนขยายคือรายการอินสแตนซ์ของส่วนขยายและ การกำหนดค่าเอง คุณสามารถดำเนินการต่อไปนี้ในไฟล์ Manifest

  • แชร์การกำหนดค่าส่วนขยายกับผู้อื่น
  • คัดลอกการกำหนดค่าส่วนขยายระหว่างโปรเจ็กต์ต่างๆ (เช่น จาก จากโปรเจ็กต์การทดลองใช้ไปเป็นโปรเจ็กต์ที่ใช้งานจริง)
  • ทำให้ส่วนขยายทั้งหมดใช้งานได้พร้อมกัน
  • ทดสอบว่าส่วนขยายทำงานร่วมกับแอปของคุณอย่างไรโดยใช้ Firebase Local Emulator Suite
  • ยืนยันการกำหนดค่าส่วนขยายให้กับการควบคุมแหล่งที่มา
  • รวมส่วนขยายไว้ในไปป์ไลน์ CI/CD

ไฟล์ Manifest ของส่วนขยายมี 2 ส่วน ดังนี้

  • ส่วน extensions ของ firebase.json ซึ่งเป็นแผนที่ของอินสแตนซ์ รหัสกับการอ้างอิงเวอร์ชันส่วนขยาย เช่น

    {
     "extensions": {
       "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
       "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
     }
    }
    
  • .env ไฟล์ที่มีการกำหนดค่าสำหรับส่วนขยายแต่ละรายการ ในไดเรกทอรีย่อย extensions/ ของโปรเจ็กต์ Firebase ไดเรกทอรี ตัวอย่างเช่น storage-resize-images อาจมี ไฟล์ .env มีลักษณะดังนี้

    IMAGE_TYPE=jpeg
    LOCATION=us-central1
    IMG_BUCKET=${param:PROJECT_ID}.appspot.com
    IMG_SIZES=100x100
    DELETE_ORIGINAL_FILE=false

สร้างไฟล์ Manifest ของส่วนขยาย

การสร้างไฟล์ Manifest ของส่วนขยายทำได้ 3 วิธีดังนี้

  • จัดการไฟล์ Manifest ของส่วนขยายด้วย Firebase CLI
  • ส่งออกการกำหนดค่าส่วนขยายของโปรเจ็กต์
  • แก้ไขไฟล์ Manifest ด้วยตนเอง

เราจะอธิบาย 2 วิธีแรกด้านล่าง

จัดการไฟล์ Manifest ของส่วนขยายด้วย Firebase CLI

คุณจะเรียกใช้คำสั่ง ext: ส่วนใหญ่ของ Firebase CLI ได้ด้วยตัวเลือก --local อัปเดตไฟล์ Manifest ของส่วนขยายโดยไม่เปลี่ยน การกำหนดค่าปัจจุบัน

เช่น

firebase ext:install --local firebase/firestore-bigquery-export

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

ตัวอย่างคำสั่งอื่นๆ ที่แก้ไขไฟล์ Manifest ของส่วนขยายมีดังนี้

# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local

# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local

# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local 

# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local

ส่งออกการกำหนดค่าส่วนขยายของโปรเจ็กต์

หากต้องการบันทึกการกำหนดค่าส่วนขยายปัจจุบันของโปรเจ็กต์ลงในไฟล์ Manifest ดังต่อไปนี้:

  1. ตั้งค่า Firebase CLI หากยังไม่ได้ทำ
  2. จากพรอมต์ของ Shell ให้เปลี่ยนเป็นไดเรกทอรีโปรเจ็กต์ (โปรเจ็กต์ของคุณ ที่มีไฟล์ firebase.json)
  3. เรียกใช้คำสั่ง ext:export
    firebase ext:export

คำสั่ง ext:export จะเพิ่มส่วน extensions ไปยัง firebase.json นอกจากนี้ คำสั่ง ext:export จะสร้างไดเรกทอรี extensions ที่มีไฟล์ .env สำหรับอินสแตนซ์ของส่วนขยายแต่ละรายการที่คุณติดตั้ง เหล่านี้ มีพารามิเตอร์การกำหนดค่าสำหรับแต่ละอินสแตนซ์

ทดสอบการกำหนดค่าส่วนขยายด้วย Firebase Local Emulator Suite

เมื่อเพิ่มอินสแตนซ์ของส่วนขยายบางรายการในไฟล์ Manifest ของส่วนขยายแล้ว คุณจะทำสิ่งต่อไปนี้ได้ ให้ทดสอบด้วย Local Emulator Suite

  1. ติดตั้งและกำหนดค่า Local Emulator Suite

  2. เริ่มต้น Local Emulator Suite:

    • หากต้องการเรียกใช้ชุดโปรแกรมจำลองแบบอินเทอร์แอกทีฟ ให้เรียกใช้คำสั่งต่อไปนี้ firebase emulators:start
    • หากต้องการเรียกใช้ชุดโปรแกรมจำลองและเรียกใช้สคริปต์ทดสอบ ให้เรียกใช้คำสั่งต่อไปนี้ firebase emulators:exec my-test.sh

ตอนนี้หากคุณมีอินสแตนซ์ส่วนขยายอยู่ในไฟล์ Manifest Local Emulator Suite จะดาวน์โหลดซอร์สโค้ดของส่วนขยายเหล่านั้นไปยัง ~/.cache/firebase/extensions เมื่อดาวน์โหลดแล้ว Local Emulator Suite จะเริ่มต้นและคุณจะสามารถเรียกใช้ ส่วนขยาย ฟังก์ชันที่ทริกเกอร์ในเบื้องหลังและเชื่อมต่อแอปกับโปรแกรมจำลอง ชุดโปรแกรมเพื่อทดสอบการผสานรวมกับแอปของคุณ

ทำให้การกำหนดค่าส่วนขยายใช้งานได้ในโปรเจ็กต์

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

วิธีทำให้ไฟล์ Manifest ของส่วนขยายใช้งานได้

  1. จากพรอมต์ของ Shell ให้เปลี่ยนเป็นไดเรกทอรีที่มีการบันทึก การกำหนดค่าส่วนขยาย (คือไดเรกทอรีที่มี firebase.json หากคุณเพิ่งเรียกใช้ ext:export แสดงว่าคุณอยู่ทางขวาแล้ว ไดเรกทอรี)
  2. เรียกใช้คำสั่ง deploy หากต้องการทำให้ส่วนขยายใช้งานได้ในโปรเจ็กต์ นอกเหนือจากรายการปัจจุบัน ให้ระบุ --project= ด้วย
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

คำสั่ง deploy จะตรวจสอบการกำหนดค่าอินสแตนซ์แต่ละรายการ และถามว่าคุณต้องการหรือไม่ เพื่อลบอินสแตนซ์ของส่วนขยายออกจากโปรเจ็กต์ปลายทาง แสดงใน firebase.json แล้วทำให้อินสแตนซ์ของส่วนขยายทั้งหมดใช้งานได้

การกำหนดค่าส่วนขยายเฉพาะโปรเจ็กต์

การกำหนดค่าส่วนขยายที่บันทึกไว้สามารถนำไปใช้เพื่อทำให้ใช้งานได้กับ เช่น โปรเจ็กต์ชั่วคราวและโปรเจ็กต์ที่ใช้งานจริง ขณะทำ ค่าพารามิเตอร์บางค่าอาจจะแตกต่างกันสำหรับแต่ละโปรเจ็กต์ ไฟล์ .env เฉพาะโปรเจ็กต์ช่วยดำเนินการต่อไปนี้ได้

  • ใส่ค่าพารามิเตอร์ที่แตกต่างกันระหว่างโปรเจ็กต์ใน extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
  • ใส่ค่าพารามิเตอร์ที่ใช้ร่วมกันใน extensions/EXTENSION_INSTANCE_ID.env

บางครั้งคุณอาจต้องการใช้ค่าพารามิเตอร์ที่แตกต่างกันเมื่อจำลอง ส่วนขยาย: คุณอาจต้องการระบุคีย์ API ทดสอบแทน เวอร์ชันที่ใช้งานจริง ใส่พารามิเตอร์เหล่านี้ในไฟล์ .local

  • ใส่พารามิเตอร์ที่ไม่ใช่ข้อมูลลับที่ต้องการใช้ระหว่างการจำลอง extensions/EXTENSION_INSTANCE_ID.env.local
  • ใส่ค่าพารามิเตอร์ลับ extensions/EXTENSION_INSTANCE_ID.secret.local