ส่วนขยาย Firebase ทำงานเฉพาะหรือชุดงานเพื่อตอบสนองต่อคำขอ HTTP หรือทริกเกอร์เหตุการณ์จาก Firebase และผลิตภัณฑ์อื่นๆ ของ Google เช่น Firebase Cloud Messaging, Cloud Firestore หรือ Pub/Sub
คุณสามารถสร้างส่วนขยายของคุณเองเพื่อใช้ส่วนตัวหรือแชร์กับคนทั้งโลกได้ใน Firebase Extensions Hub ตัวอย่างเช่น ส่วนขยายของคุณสามารถทำงานเฉพาะที่แอปของคุณต้องการเป็นประจำ หรืออาจทำให้เข้าถึงหนึ่งใน API ของบริษัทของคุณได้ง่ายขึ้น หลังจากที่คุณสร้างส่วนขยายแล้ว คุณสามารถแชร์กับผู้อื่นได้ ผู้ใช้เหล่านั้นสามารถติดตั้งและกำหนดค่าส่วนขยายเพื่อใช้ในโครงการ Firebase ของตนเองได้
โครงสร้างของส่วนขยาย
คุณสามารถนึกถึงส่วนขยายว่ามีองค์ประกอบหลักสามส่วน:
- โค้ด 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 และ Extensions Hub จะแสดงเนื้อหาของไฟล์เหล่านี้เมื่อผู้ใช้สำรวจ ติดตั้ง และจัดการส่วนขยายของคุณ
หลังจากที่คุณสร้างส่วนขยายแล้ว คุณสามารถใช้ Firebase CLI เพื่อติดตั้งลงในโปรเจ็กต์หรือเผยแพร่ไปยัง Extensions Hub ซึ่งทุกคนสามารถค้นพบและติดตั้งลงในโปรเจ็กต์ของตนได้
ส่วนขยายของฉันสามารถโต้ตอบกับผลิตภัณฑ์ใดบ้าง
เนื่องจากส่วนขยาย Firebase ทำงานโดยใช้ฟังก์ชันคลาวด์ คุณจึงนึกถึงคำถามเกี่ยวกับการผสานรวมที่เป็นไปได้ได้สองวิธี: ผลิตภัณฑ์ใดบ้างที่สามารถทริกเกอร์ฟังก์ชันของส่วนขยายของฉันได้ และ เมื่อทริกเกอร์แล้ว ฟังก์ชันส่วนขยายของฉันสามารถโต้ตอบกับผลิตภัณฑ์ใดได้บ้าง
ทริกเกอร์ฟังก์ชันที่รองรับ
ทริกเกอร์แบบแมนนวล
ก่อนอื่น คุณสามารถทริกเกอร์ฟังก์ชันได้ด้วยตนเอง ส่วนขยาย Firebase และฟังก์ชันคลาวด์รองรับฟังก์ชันการทริกเกอร์ด้วยตนเองสองวิธี:
- ทริกเกอร์ HTTP: ปรับใช้ฟังก์ชันกับปลายทาง HTTP
- ฟังก์ชันที่เรียกใช้ได้: เรียกใช้ฟังก์ชันคลาวด์ของคุณโดยตรงจาก iOS, Android หรือโค้ดไคลเอ็นต์บนเว็บ โดยใช้ Firebase ไคลเอ็นต์ SDK
การเปิดเผยปลายทาง HTTP จากส่วนขยายของคุณ ส่วนขยายของคุณสามารถผสานรวมกับบริการเว็บใดๆ ที่รองรับ webhooks ด้วยฟังก์ชันที่เรียกใช้ได้ ผู้ใช้ที่ติดตั้งส่วนขยายของคุณสามารถใช้ Firebase SDK เป็นไลบรารีไคลเอ็นต์สำหรับการเข้าถึง API ที่ส่วนขยายของคุณใช้งาน
ทริกเกอร์บริการ Firebase
ผลิตภัณฑ์ Firebase ส่วนใหญ่ปล่อยเหตุการณ์ที่สามารถทริกเกอร์ฟังก์ชันคลาวด์ของส่วนขยายได้
- การวิเคราะห์: ทริกเกอร์ฟังก์ชันเมื่อ Analytics บันทึกเหตุการณ์
- App Distribution: ทริกเกอร์ฟังก์ชันเมื่อ App Distribution ทริกเกอร์การแจ้งเตือน
- การรับรองความถูกต้อง: ทริกเกอร์ฟังก์ชันเมื่อผู้ใช้สร้างและลบบัญชี
- Cloud Firestore: ทริกเกอร์ฟังก์ชันเมื่อมีการสร้าง อัปเดต หรือลบเพจ
- Cloud Storage : ทริกเกอร์ฟังก์ชันเมื่อมีการอัปโหลด เก็บถาวร หรือลบออบเจ็กต์ออกจากที่เก็บข้อมูล
- Crashlytics: ทริกเกอร์ฟังก์ชันเมื่อ Crashlytics ทริกเกอร์การแจ้งเตือน
- การตรวจสอบประสิทธิภาพ: ทริกเกอร์ฟังก์ชันเมื่อการตรวจสอบประสิทธิภาพทำให้เกิดการแจ้งเตือน
- ฐานข้อมูลเรียลไทม์: ทริกเกอร์ฟังก์ชันเมื่อมีการสร้าง อัปเดต หรือลบข้อมูล
- การกำหนดค่าระยะไกล: ทริกเกอร์ฟังก์ชันเมื่อมีการอัพเดตพารามิเตอร์
- Test Lab: ทริกเกอร์ฟังก์ชันเมื่อ Test Lab เรียกใช้การแจ้งเตือน
ทริกเกอร์บริการ Google Cloud
ส่วนขยายยังสามารถรวมฟังก์ชันที่เรียกใช้บริการ Google Cloud ที่ไม่ใช่ Firebase หลายอย่าง:
- Cloud Pub/Sub : ส่วนขยายสามารถรวมฟังก์ชันที่ทริกเกอร์เมื่อมีการโพสต์เหตุการณ์ในหัวข้อ Pub/Sub ที่กำหนดค่าได้
- Cloud Scheduler : ส่วนขยายสามารถรวมฟังก์ชันที่ทำงานตามกำหนดเวลาที่ตั้งไว้
- Cloud Tasks : ส่วนขยายสามารถรวมฟังก์ชันที่สามารถจัดคิวได้โดยใช้ Cloud Tasks ส่วนขยาย Firebase ใช้ความสามารถนี้เพื่อให้คุณในฐานะผู้เขียนส่วนขยาย สามารถเขียนฟังก์ชันที่ตอบสนองต่อเหตุการณ์ "วงจรการใช้งาน" ของส่วนขยาย ได้แก่ การติดตั้งในโปรเจ็กต์เป็นครั้งแรก อัปเกรดเป็นเวอร์ชันใหม่ และกำหนดค่าใหม่
- Eventarc : ส่วนขยายสามารถรวมฟังก์ชันที่ทริกเกอร์เมื่อมีการเผยแพร่เหตุการณ์ไปยังช่อง Eventarc ที่กำหนดค่าได้ ในทางกลับกัน ส่วนขยายสามารถเผยแพร่เหตุการณ์ของตัวเองไปยังช่อง Eventarc เพื่อให้ผู้ใช้สามารถกำหนดฟังก์ชันของตนเองที่ทริกเกอร์จากเหตุการณ์ ของส่วนขยาย
ได้รับการสนับสนุนจากฟังก์ชั่น
เมื่อฟังก์ชันคลาวด์ของส่วนขยายถูกทริกเกอร์ โดยทั่วไปช่วงของการผสานรวมที่เป็นไปได้จะเป็นแบบปลายเปิด ต่อไปนี้คือจุดเด่นบางประการของสิ่งที่คุณสามารถทำได้จาก Cloud Function:
- อ่าน เขียน และโต้ตอบกับบริการ Firebase หรือ Google Cloud ที่ใช้ บทบาท IAM ที่รองรับ
- ทำงานร่วมกับ บริการของบุคคลที่สาม ที่ให้บริการ API ของเว็บ
- ทำงานกับ บริการที่กำหนดเอง ของคุณหากคุณมีเว็บ API
- เรียกใช้ไลบรารี JavaScript ส่วนใหญ่ รวมถึง TensorFlow.js , Express.js และอื่นๆ
วิธีการสร้างส่วนขยาย
บท ช่วยสอนเริ่มต้น ใช้งานจะแนะนำคุณตลอดกระบวนการสร้าง ทดสอบ และเผยแพร่ส่วนขยายที่สมบูรณ์ และเป็นวิธีที่แนะนำในการเรียนรู้วิธีสร้างส่วนขยาย
หลังจากที่คุณได้อ่านคู่มือเริ่มต้นใช้งานแล้ว คุณสามารถดูคำแนะนำแต่ละหัวข้อได้ ซึ่งจะอธิบายงานแต่ละอย่างที่เกี่ยวข้องกับการสร้างส่วนขยายของคุณเอง:
- เขียนฟังก์ชันสำหรับส่วนขยาย
- ใช้พารามิเตอร์ในส่วนขยาย
- ตั้งค่าการเข้าถึงที่เหมาะสมสำหรับส่วนขยาย
- ตอบสนองต่อเหตุการณ์วงจรการใช้งานส่วนขยาย
- เพิ่ม hooks ผู้ใช้ลงในส่วนขยาย
- สร้างเอกสารผู้ใช้สำหรับส่วนขยายของคุณ
- เผยแพร่ส่วนขยายบน Extensions Hub
- อ้างอิง extension.yaml ให้สมบูรณ์