Ringkasan penayang ekstensi

Firebase Extensions menjalankan tugas atau serangkaian tugas tertentu sebagai respons terhadap permintaan HTTP atau peristiwa pemicu dari produk Firebase dan Google lainnya, seperti Firebase Cloud Messaging, Cloud Firestore, atau Pub/Sub.

Anda dapat mem-build ekstensi Anda sendiri untuk penggunaan pribadi atau untuk berbagi dengan dunia di Firebase Extensions Hub. Sebagai contoh, ekstensi Anda dapat melakukan tugas tertentu yang biasanya diperlukan aplikasi Anda, atau dapat mempermudah akses ke salah satu API perusahaan Anda. Setelah mem-build ekstensi, Anda dapat membagikannya kepada pengguna lain. Pengguna dapat menginstal dan mengonfigurasi ekstensi tersebut untuk digunakan dalam project Firebase mereka sendiri.

Struktur ekstensi

Anda dapat menganggap ekstensi seperti memiliki tiga komponen utama:

  • Kode Cloud Functions, dalam JavaScript atau TypeScript
  • Metadata yang mendeskripsikan ekstensi Anda
  • Dokumentasi untuk membantu pengguna mengonfigurasi dan menggunakan ekstensi Anda

Untuk mengembangkan ekstensi, Anda harus menyusun komponen-komponen tersebut ke dalam struktur berikut:

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
  • Direktori functions berisi kode Cloud Functions Anda dalam JavaScript atau TypeScript. Ini adalah kode yang melakukan tugas ekstensi sebagai respons terhadap peristiwa yang dipicu oleh layanan Firebase dan Google.
  • File extension.yaml berisi metadata tentang ekstensi Anda, seperti pemicu dan peran akses IAM-nya, serta parameter apa pun yang Anda inginkan untuk dikonfigurasi oleh pengguna.
  • File PREINSTALL, POSTINSTALL, dan CHANGELOG adalah dokumentasi minimum yang harus dimiliki ekstensi Anda. File-file tersebut membantu pengguna mempelajari fungsi ekstensi, cara menggunakannya, dan update yang telah Anda buat. Anda juga harus menyediakan ikon untuk membantu pengguna mengenali ekstensi Anda. Firebase console, Firebase CLI, dan Extensions Hub menampilkan konten file-file tersebut saat pengguna menjelajahi, menginstal, dan mengelola ekstensi Anda.

Setelah membuat ekstensi, Anda dapat menggunakan Firebase CLI untuk menginstalnya ke dalam project atau memublikasikannya ke Extensions Hub, tempat semua orang dapat menemukan dan menginstalnya ke dalam project mereka.

Dengan produk apa ekstensi saya dapat berinteraksi?

Karena ekstensi Firebase melakukan fungsinya menggunakan Cloud Functions, Anda dapat memikirkan pertanyaan tentang kemungkinan integrasi dalam dua cara: Produk apa yang dapat memicu fungsi ekstensi saya? dan Setelah dipicu, dengan produk apa fungsi ekstensi saya dapat berinteraksi?

Pemicu fungsi yang didukung

Pemicu manual

Pertama-tama, Anda dapat memicu fungsi secara manual. Firebase Extensions dan Cloud Functions mendukung dua cara untuk memicu fungsi secara manual:

  • Pemicu HTTP: men-deploy fungsi ke endpoint HTTP
  • Fungsi callable: memanggil Cloud Functions Anda langsung dari kode klien iOS, Android, atau web menggunakan SDK klien Firebase.

Dengan mengekspos endpoint HTTP dari ekstensi Anda, ekstensi berpotensi terintegrasi dengan layanan web apa pun yang mendukung webhook. Dengan fungsi callable, pengguna yang menginstal ekstensi Anda dapat menggunakan Firebase SDK sebagai library klien untuk mengakses API yang diterapkan oleh ekstensi Anda.

Pemicu layanan Firebase

Sebagian besar produk Firebase memunculkan peristiwa yang dapat memicu Cloud Functions ekstensi.

  • Analytics: memicu fungsi saat Analytics mencatat peristiwa
  • App Distribution: memicu fungsi saat App Distribution memicu pemberitahuan
  • Authentication: memicu fungsi saat pengguna membuat dan menghapus akun
  • Cloud Firestore: memicu fungsi saat halaman dibuat, diperbarui, atau dihapus
  • Cloud Storage: memicu fungsi saat objek diupload, diarsipkan, atau dihapus dari bucket
  • Crashlytics: memicu fungsi saat Crashlytics memicu pemberitahuan
  • Performance Monitoring: memicu fungsi saat Performance Monitoring memicu pemberitahuan
  • Realtime Database: memicu fungsi saat data dibuat, diperbarui, atau dihapus
  • Remote Config: memicu fungsi saat parameter diperbarui
  • Test Lab: memicu fungsi saat Test Lab memicu pemberitahuan

Pemicu layanan Google Cloud

Ekstensi juga dapat mencakup fungsi yang memicu beberapa layanan Google Cloud non-Firebase:

  • Cloud Pub/Sub: ekstensi dapat mencakup fungsi yang dipicu saat peristiwa diposting ke topik Pub/Sub yang dapat dikonfigurasi.
  • Cloud Scheduler: ekstensi dapat mencakup fungsi yang berjalan sesuai jadwal yang ditetapkan
  • Cloud Tasks: ekstensi dapat mencakup fungsi yang dapat diantrekan menggunakan Cloud Tasks. Firebase Extensions menggunakan kemampuan ini agar Anda, sebagai penulis ekstensi, dapat menulis fungsi yang merespons peristiwa "siklus proses" ekstensi: diinstal di project untuk pertama kalinya, diupgrade ke versi baru, dan dikonfigurasi ulang.
  • Eventarc: ekstensi dapat mencakup fungsi yang terpicu saat peristiwa dipublikasikan ke saluran Eventarc yang dapat dikonfigurasi; sebaliknya, ekstensi dapat memublikasikan peristiwanya sendiri ke saluran Eventarc agar pengguna dapat menentukan fungsi mereka sendiri yang dipicu dari peristiwa ekstensi.

Didukung dari fungsi

Setelah Cloud Function ekstensi dipicu, rentang dari integrasi yang dimungkinkan biasanya bersifat terbuka. Berikut beberapa sorotan tentang hal yang dapat Anda lakukan dari Cloud Function:

  • Membaca, menulis, dan berinteraksi dengan layanan Firebase atau Google Cloud yang menggunakan peran IAM yang didukung.
  • Bekerja dengan layanan pihak ketiga yang menyediakan API web.
  • Bekerja dengan layanan kustom jika Anda menyediakan API web.
  • Menjalankan sebagian besar library JavaScript, termasuk TensorFlow.js, Express.js, dan sebagainya.

Cara mem-build ekstensi

Tutorial Memulai memandu Anda mempelajari proses pembuatan, pengujian, dan publikasi ekstensi yang telah selesai, serta merupakan cara yang direkomendasikan untuk mempelajari cara mem-build ekstensi.

Memulai

Setelah membaca panduan memulai secara menyeluruh, Anda dapat merujuk panduan secara per topik, yang menjelaskan setiap tugas yang terlibat dalam mem-build ekstensi Anda sendiri: