ไฟล์ 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 ดังต่อไปนี้:
- ตั้งค่า Firebase CLI หากยังไม่ได้ทำ
- จากพรอมต์ของ Shell ให้เปลี่ยนเป็นไดเรกทอรีโปรเจ็กต์ (โปรเจ็กต์ของคุณ
ที่มีไฟล์
firebase.json
) - เรียกใช้คำสั่ง
ext:export
firebase ext:export
คำสั่ง ext:export
จะเพิ่มส่วน extensions
ไปยัง firebase.json
นอกจากนี้ คำสั่ง ext:export
จะสร้างไดเรกทอรี extensions
ที่มีไฟล์ .env
สำหรับอินสแตนซ์ของส่วนขยายแต่ละรายการที่คุณติดตั้ง เหล่านี้
มีพารามิเตอร์การกำหนดค่าสำหรับแต่ละอินสแตนซ์
ทดสอบการกำหนดค่าส่วนขยายด้วย Firebase Local Emulator Suite
เมื่อเพิ่มอินสแตนซ์ของส่วนขยายบางรายการในไฟล์ Manifest ของส่วนขยายแล้ว คุณจะทำสิ่งต่อไปนี้ได้ ให้ทดสอบด้วย Local Emulator Suite
เริ่มต้น 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 ของส่วนขยายใช้งานได้
- จากพรอมต์ของ Shell ให้เปลี่ยนเป็นไดเรกทอรีที่มีการบันทึก
การกำหนดค่าส่วนขยาย (คือไดเรกทอรีที่มี
firebase.json
หากคุณเพิ่งเรียกใช้ext:export
แสดงว่าคุณอยู่ทางขวาแล้ว ไดเรกทอรี) - เรียกใช้คำสั่ง
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