ส่วนขยาย Firebase จะทำงานหรือชุดงานที่เฉพาะเจาะจงเพื่อตอบสนองต่อ คำขอ HTTP หรือการทริกเกอร์เหตุการณ์จาก Firebase และผลิตภัณฑ์อื่นๆ ของ Google เช่น Firebase Cloud Messaging, Cloud Firestore หรือ Pub/Sub
คุณสามารถสร้างส่วนขยายของคุณเองเพื่อใช้งานส่วนตัวหรือแชร์กับผู้อื่นได้ในฮับส่วนขยาย Firebase เช่น ส่วนขยายสามารถทํางานบางอย่างที่เฉพาะเจาะจงซึ่งแอปของคุณต้องใช้เป็นประจำ หรือช่วยให้เข้าถึง API ของบริษัทได้ง่ายขึ้น หลังจากสร้างส่วนขยายแล้ว คุณสามารถแชร์ส่วนขยายกับ อื่นๆ ผู้ใช้เหล่านั้นสามารถติดตั้งและกำหนดค่าส่วนขยายสำหรับการใช้งานด้วยตนเองได้ โปรเจ็กต์ Firebase
โครงสร้างของส่วนขยาย
คุณอาจนึกถึงส่วนขยายว่ามีองค์ประกอบหลัก 3 อย่างดังนี้
- โค้ด Cloud Functions ใน JavaScript หรือ TypeScript
- ข้อมูลเมตาที่อธิบายส่วนขยายของคุณ
- เอกสารประกอบที่จะช่วยผู้ใช้กำหนดค่าและใช้ส่วนขยายของคุณ
หากต้องการพัฒนาส่วนขยาย คุณต้องประกอบคอมโพเนนต์เหล่านี้เป็นโครงสร้างต่อไปนี้
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
- ไดเรกทอรี
functions
มีโค้ด Cloud Functions ใน JavaScript หรือ TypeScript นี่คือโค้ดที่ดําเนินการของส่วนขยายเพื่อตอบสนองต่อเหตุการณ์ที่ทริกเกอร์โดย Firebase และบริการของ Google - ไฟล์
extension.yaml
มีข้อมูลเมตาเกี่ยวกับส่วนขยายของคุณ เช่น ทริกเกอร์และบทบาทการเข้าถึง IAM รวมถึงพารามิเตอร์ที่คุณต้องการ ผู้ใช้สามารถกำหนดค่าได้ - ไฟล์
PREINSTALL
,POSTINSTALL
และCHANGELOG
เป็นไฟล์ขั้นต่ำ ที่ส่วนขยายของคุณต้องมี ไฟล์เหล่านี้ช่วยให้ผู้ใช้ทราบถึงสิ่งที่ส่วนขยายทํา วิธีใช้ และอัปเดตที่คุณทํา นอกจากนี้ คุณควรระบุไอคอนเพื่อช่วยให้ผู้ใช้ได้จดจำส่วนขยายของคุณ คอนโซล Firebase, Firebase CLI และฮับส่วนขยายแสดงเนื้อหาของ ไฟล์เหล่านี้เมื่อผู้ใช้สำรวจ ติดตั้ง และจัดการส่วนขยายของคุณ
หลังจากสร้างส่วนขยายแล้ว คุณสามารถใช้ Firebase CLI เพื่อติดตั้งส่วนขยายลงในโปรเจ็กต์หรือเผยแพร่ไปยังฮับส่วนขยาย ซึ่งทุกคนจะค้นพบและติดตั้งส่วนขยายลงในโปรเจ็กต์ของตนเองได้
ส่วนขยายของฉันโต้ตอบกับผลิตภัณฑ์ใดได้บ้าง
เนื่องจากส่วนขยาย Firebase ทํางานโดยใช้ Cloud Functions คุณจึงพิจารณาคำถามเกี่ยวกับการผสานรวมที่เป็นไปได้ได้ 2 วิธี ได้แก่ ผลิตภัณฑ์ใดสามารถทริกเกอร์ฟังก์ชันของส่วนขยาย และเมื่อทริกเกอร์แล้ว ฟังก์ชันของส่วนขยายจะโต้ตอบกับผลิตภัณฑ์ใดได้บ้าง
ทริกเกอร์ฟังก์ชันที่รองรับ
ทริกเกอร์ด้วยตนเอง
อย่างแรก คุณสามารถทริกเกอร์ฟังก์ชันด้วยตนเองได้ Firebase Extensions และระบบคลาวด์ ฟังก์ชันรองรับการเรียกฟังก์ชันด้วยตนเอง 2 วิธี ดังนี้
- ทริกเกอร์ HTTP: ทำให้ฟังก์ชันใช้งานได้กับปลายทาง HTTP
- ฟังก์ชันที่เรียกใช้ได้: เรียกใช้ Cloud Functions โดยตรงจากโค้ดไคลเอ็นต์ iOS, Android หรือเว็บโดยใช้ Firebase Client SDK
การเปิดเผยปลายทาง HTTP จากส่วนขยายอาจทำให้ส่วนขยายผสานรวมกับเว็บเซอร์วิสที่รองรับ Webhook ได้ เมื่อใช้ฟังก์ชันที่เรียกใช้ได้ ผู้ใช้ที่ติดตั้งส่วนขยายจะใช้ Firebase SDK เป็นไลบรารีไคลเอ็นต์เพื่อเข้าถึง API ที่คุณติดตั้งใช้งานได้
ทริกเกอร์บริการ Firebase
ผลิตภัณฑ์ Firebase ส่วนใหญ่ปล่อยเหตุการณ์ที่สามารถเรียกใช้ระบบคลาวด์ของส่วนขยาย ฟังก์ชัน
- Analytics: ทริกเกอร์ฟังก์ชันเมื่อ Analytics บันทึกเหตุการณ์
- App Distribution: จะทริกเกอร์ฟังก์ชันเมื่อ App Distribution ทริกเกอร์ การแจ้งเตือน
- การตรวจสอบสิทธิ์: ทริกเกอร์ฟังก์ชันเมื่อผู้ใช้สร้างและลบบัญชี
- Cloud Firestore: เรียกใช้ฟังก์ชันเมื่อมีการสร้างหน้า อัปเดต หรือ ลบแล้ว
- Cloud Storage: ทริกเกอร์ฟังก์ชันเมื่อมีการอัปโหลด เก็บถาวร หรือลบออบเจ็กต์ออกจากที่เก็บข้อมูล
- Crashlytics: ทริกเกอร์ฟังก์ชันเมื่อ Crashlytics ทริกเกอร์การแจ้งเตือน
- การตรวจสอบประสิทธิภาพ: ทริกเกอร์ฟังก์ชันเมื่อการตรวจสอบประสิทธิภาพทริกเกอร์การแจ้งเตือน
- Realtime Database: ทริกเกอร์ฟังก์ชันเมื่อสร้าง อัปเดต หรือลบข้อมูล
- การกำหนดค่าระยะไกล: ทริกเกอร์ฟังก์ชันเมื่ออัปเดตพารามิเตอร์
- Test Lab: เรียกใช้ฟังก์ชันเมื่อ Test Lab ทริกเกอร์การแจ้งเตือน
ทริกเกอร์บริการ Google Cloud
ส่วนขยายหนึ่งสามารถมีฟังก์ชันที่ทริกเกอร์ฟังก์ชันที่ไม่ใช่ Firebase หลายรายการได้ บริการ Google Cloud
- Cloud Pub/Sub: ส่วนขยายสามารถมีฟังก์ชันที่ทริกเกอร์เมื่อ ระบบจะโพสต์เหตุการณ์ไปยังหัวข้อ Pub/Sub ที่กำหนดค่าได้
- Cloud Scheduler: ส่วนขยายสามารถมีฟังก์ชันที่ทำงานในชุด ตารางการแข่งขัน
- Cloud Tasks: ส่วนขยายอาจมีฟังก์ชันที่ใช้จัดคิวได้ Cloud Tasks ส่วนขยาย Firebase ใช้ความสามารถนี้เพื่อให้คุณในฐานะผู้เขียนส่วนขยายเขียนฟังก์ชันที่ตอบสนองต่อเหตุการณ์ "วงจร" ของส่วนขยายได้ ซึ่งได้แก่ การติดตั้งในโปรเจ็กต์เป็นครั้งแรก การอัปเกรดเป็นเวอร์ชันใหม่ และการกําหนดค่าใหม่
- Eventarc: ส่วนขยายสามารถมีฟังก์ชันที่ทริกเกอร์เมื่อเหตุการณ์ เผยแพร่ไปยังแชแนล Eventarc ที่กำหนดค่าได้ ในทางกลับกัน ส่วนขยาย สามารถเผยแพร่เหตุการณ์ของตนเองไปยังแชแนลของ Eventarc เพื่อให้ผู้ใช้ เพื่อกำหนดฟังก์ชันของตัวเองที่ทริกเกอร์จากเหตุการณ์ของส่วนขยาย
ฟังก์ชันที่รองรับ
เมื่อมีการทริกเกอร์ Cloud Function ของส่วนขยายแล้ว ช่วงของค่าที่เป็นไปได้ การผสานรวมเป็นคำถามปลายเปิด มาดูไฮไลต์สิ่งที่คุณทำได้ จาก Cloud Function
- อ่าน เขียน และโต้ตอบกับ Firebase หรือ Google Cloud บริการที่ บทบาท IAM ที่รองรับ
- ทำงานร่วมกับบริการของบุคคลที่สามที่มี Web API
- ทำงานกับบริการที่กำหนดเองหากคุณมี API ของเว็บ
- เรียกใช้ไลบรารี JavaScript ส่วนใหญ่ รวมถึง TensorFlow.js, Express.js และอื่นๆ
วิธีสร้างส่วนขยาย
บทแนะนำเริ่มต้นใช้งานจะอธิบายขั้นตอนการสร้าง ทดสอบ และเผยแพร่ส่วนขยายอย่างละเอียด และเป็นวิธีที่แนะนำในการดูวิธีสร้างส่วนขยาย
หลังจากอ่านคู่มือเริ่มต้นใช้งานแล้ว คุณสามารถอ่านคู่มือหัวข้อแต่ละหัวข้อซึ่งอธิบายงานแต่ละอย่างที่เกี่ยวข้องกับการสร้างส่วนขยายของคุณเอง
- เขียนฟังก์ชันสำหรับส่วนขยาย
- ใช้พารามิเตอร์ในส่วนขยาย
- ตั้งค่าการเข้าถึงที่เหมาะสมสําหรับส่วนขยาย
- ตอบสนองต่อเหตุการณ์ในวงจรของส่วนขยาย
- เพิ่มฮุกผู้ใช้ไปยังส่วนขยาย
- สร้างเอกสารผู้ใช้สำหรับส่วนขยาย
- เผยแพร่ส่วนขยายในฮับส่วนขยาย
- ข้อมูลอ้างอิง extensions.yaml ที่สมบูรณ์