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

ส่วนขยาย 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 และ Extensions Hub จะแสดงเนื้อหาของไฟล์เหล่านี้เมื่อผู้ใช้สำรวจ ติดตั้ง และจัดการส่วนขยาย

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

ส่วนขยายของฉันโต้ตอบกับผลิตภัณฑ์ใดได้บ้าง

เนื่องจากส่วนขยาย Firebase ทํางานโดยใช้ Cloud Functions คุณจึงพิจารณาคำถามเกี่ยวกับการผสานรวมที่เป็นไปได้ได้ 2 วิธี ได้แก่ ผลิตภัณฑ์ใดสามารถทริกเกอร์ฟังก์ชันของส่วนขยาย และเมื่อทริกเกอร์แล้ว ฟังก์ชันของส่วนขยายจะโต้ตอบกับผลิตภัณฑ์ใดได้บ้าง

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

ทริกเกอร์ที่กําหนดเอง

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

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

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

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

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

  • Analytics: ทริกเกอร์ฟังก์ชันเมื่อ Analytics บันทึกเหตุการณ์
  • App Distribution: ทริกเกอร์ฟังก์ชันเมื่อ App Distribution ทริกเกอร์การแจ้งเตือน
  • การตรวจสอบสิทธิ์: ทริกเกอร์ฟังก์ชันเมื่อผู้ใช้สร้างและลบบัญชี
  • Cloud Firestore: ทริกเกอร์ฟังก์ชันเมื่อสร้าง อัปเดต หรือลบหน้าเว็บ
  • Cloud Storage: ทริกเกอร์ฟังก์ชันเมื่อมีการอัปโหลด เก็บถาวร หรือลบออบเจ็กต์ออกจากที่เก็บข้อมูล
  • Crashlytics: ทริกเกอร์ฟังก์ชันเมื่อ Crashlytics ทริกเกอร์การแจ้งเตือน
  • การตรวจสอบประสิทธิภาพ: ทริกเกอร์ฟังก์ชันเมื่อการตรวจสอบประสิทธิภาพทริกเกอร์การแจ้งเตือน
  • Realtime Database: ทริกเกอร์ฟังก์ชันเมื่อสร้าง อัปเดต หรือลบข้อมูล
  • การกําหนดค่าระยะไกล: ทริกเกอร์ฟังก์ชันเมื่อมีการอัปเดตพารามิเตอร์
  • 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 ของส่วนขยายแล้ว โดยทั่วไปการผสานรวมที่เป็นไปได้จะมีขอบเขตที่เปิดกว้าง ต่อไปนี้คือไฮไลต์บางส่วนของสิ่งที่คุณทําได้จาก Cloud Function

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

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

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

เริ่มต้นใช้งาน

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