ภาพรวมของผู้เผยแพร่ส่วนขยาย

ส่วนขยาย 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 ทำงานโดยใช้ Cloud Functions คุณจึงนึกถึงคำถามของการผสานรวมที่เป็นไปได้ในสองวิธี: ผลิตภัณฑ์ใดที่สามารถเรียกใช้ฟังก์ชันของส่วนขยายของฉันได้ และ เมื่อเรียกใช้แล้ว ฟังก์ชันของส่วนขยายของฉันสามารถโต้ตอบกับผลิตภัณฑ์ใดได้บ้าง

ทริกเกอร์ฟังก์ชั่นที่รองรับ

ทริกเกอร์ด้วยตนเอง

ก่อนอื่น คุณสามารถเรียกใช้ฟังก์ชันได้ด้วยตนเอง Firebase Extensions และ Cloud Functions รองรับสองวิธีในการเรียกใช้ฟังก์ชันด้วยตนเอง:

  • ทริกเกอร์ HTTP: ปรับใช้ฟังก์ชันกับปลายทาง HTTP
  • ฟังก์ชันที่เรียกใช้ได้: เรียกใช้ Cloud Functions โดยตรงจากโค้ดไคลเอ็นต์ iOS, Android หรือเว็บ โดยใช้ SDK ของไคลเอ็นต์ Firebase

เมื่อเปิดเผยปลายทาง HTTP จากส่วนขยายของคุณ ส่วนขยายของคุณอาจรวมเข้ากับบริการเว็บใดๆ ที่สนับสนุนเว็บฮุค ด้วยฟังก์ชันที่เรียกได้ ผู้ใช้ที่ติดตั้งส่วนขยายของคุณสามารถใช้ Firebase SDK เป็นไลบรารีไคลเอ็นต์สำหรับเข้าถึง API ที่ส่วนขยายของคุณใช้

ทริกเกอร์บริการ Firebase

ผลิตภัณฑ์ Firebase ส่วนใหญ่จะปล่อยเหตุการณ์ที่สามารถเรียกใช้ Cloud Functions ของส่วนขยายได้

  • Analytics: ทริกเกอร์ฟังก์ชันเมื่อ 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 Extensions ใช้ความสามารถนี้เพื่อให้คุณในฐานะผู้เขียนส่วนขยายเขียนฟังก์ชันที่ตอบสนองต่อเหตุการณ์ "วงจรชีวิต" ของส่วนขยาย: การติดตั้งในโครงการเป็นครั้งแรก การอัปเกรดเป็นเวอร์ชันใหม่ และการกำหนดค่าใหม่
  • Eventarc : ส่วนขยายสามารถรวมฟังก์ชันที่ทริกเกอร์เมื่อเหตุการณ์ถูกเผยแพร่ไปยังช่อง Eventarc ที่กำหนดค่าได้ ในทางกลับกัน ส่วนขยายสามารถเผยแพร่กิจกรรมของตนเองไปยังช่อง Eventarc เพื่อให้ผู้ใช้สามารถกำหนดฟังก์ชันของตนเองที่เรียกใช้จากเหตุการณ์ ของส่วนขยาย

รองรับจากฟังก์ชั่น

เมื่อเปิดใช้งาน Cloud Function ของส่วนขยายแล้ว ช่วงของการผสานรวมที่เป็นไปได้โดยทั่วไปจะเป็นปลายเปิด นี่คือไฮไลท์บางส่วนของสิ่งที่คุณสามารถทำได้จาก Cloud Function:

  • อ่าน เขียน และโต้ตอบกับบริการ Firebase หรือ Google Cloud ที่ใช้ บทบาท IAM ที่รองรับ
  • ทำงานกับ บริการของบุคคลที่สาม ที่ให้บริการเว็บ API
  • ทำงานกับ บริการที่กำหนดเอง ของคุณหากคุณมี API ของเว็บ
  • เรียกใช้ไลบรารี JavaScript ส่วนใหญ่ รวมถึง TensorFlow.js , Express.js และอื่นๆ

วิธีสร้างส่วนขยาย

บทแนะนำ เริ่มต้น ใช้งานจะอธิบายขั้นตอนการสร้าง ทดสอบ และเผยแพร่ส่วนขยายที่สมบูรณ์ และเป็นวิธีที่แนะนำในการเรียนรู้วิธีสร้างส่วนขยาย

เริ่ม

หลังจากที่คุณได้ดูคู่มือเริ่มต้นใช้งานแล้ว คุณสามารถดูคำแนะนำแต่ละหัวข้อ ซึ่งจะอธิบายงานแต่ละอย่างที่เกี่ยวข้องกับการสร้างส่วนขยายของคุณเอง: