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

ส่วนขยาย 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 และอื่นๆ

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

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

เริ่ม

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