Manifes ekstensi adalah daftar instance ekstensi dan konfigurasinya. Dengan manifes, Anda dapat:
- Bagikan konfigurasi ekstensi Anda dengan orang lain
- Salin konfigurasi ekstensi Anda di antara proyek yang berbeda (seperti dari proyek pementasan ke proyek produksi Anda)
- Terapkan semua ekstensi Anda sekaligus
- Uji bagaimana ekstensi Anda bekerja dengan aplikasi Anda menggunakan Firebase Local Emulator Suite
- Komit konfigurasi ekstensi Anda ke kontrol sumber
- Sertakan ekstensi dalam saluran CI/CD Anda
Manifes ekstensi memiliki dua bagian:
Bagian
extensions
darifirebase.json
Anda, yang merupakan peta ID instance ke referensi versi ekstensi. Sebagai contoh:{ "extensions": { "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18", "my-image-resizer": "firebase/storage-resize-images@^0.1.22", } }
file
.env
yang berisi konfigurasi untuk setiap instance ekstensi Anda, di subdirektoriextensions/
dari direktori proyek Firebase Anda. Misalnya, instance daristorage-resize-images
mungkin memiliki file.env
seperti berikut:IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.appspot.com IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
Buat manifes ekstensi
Ada tiga cara untuk membuat manifes ekstensi:
- Kelola manifes ekstensi Anda dengan Firebase CLI
- Ekspor konfigurasi ekstensi proyek
- Edit file manifes secara manual
Dua metode pertama dijelaskan di bawah ini.
Kelola manifes ekstensi Anda dengan Firebase CLI
Anda dapat menjalankan sebagian besar perintah ext:
Firebase CLI dengan opsi --local
untuk memperbarui manifes ekstensi tanpa benar-benar mengubah konfigurasi proyek saat ini.
Sebagai contoh:
firebase ext:install --local firebase/firestore-bigquery-export
Menjalankan perintah di atas akan meminta Anda untuk mengonfigurasi versi terbaru firebase/firestore-bigquery-export
dan menyimpan konfigurasi ke manifes, tetapi tidak akan menerapkan konfigurasi ke proyek Anda.
Berikut adalah beberapa contoh perintah yang mengubah manifes ekstensi:
# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local
# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local
# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local
# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local
Ekspor konfigurasi ekstensi proyek
Untuk menyimpan konfigurasi ekstensi proyek saat ini ke manifes, lakukan hal berikut:
- Jika Anda belum melakukannya, siapkan Firebase CLI
- Dari prompt shell, ubah ke direktori proyek. (Direktori proyek Anda berisi file
firebase.json
). - Jalankan perintah
ext:export
:firebase ext:export
Perintah ext:export
akan menambahkan bagian extensions
ke file firebase.json
. Selain itu, perintah ext:export
membuat direktori extensions
yang berisi file .env
untuk setiap instance ekstensi yang telah Anda instal. File-file ini berisi parameter konfigurasi untuk setiap instance.
Uji konfigurasi ekstensi dengan Firebase Local Emulator Suite
Setelah Anda menambahkan beberapa instance ekstensi ke manifes ekstensi, Anda dapat mengujinya menggunakan Local Emulator Suite.
Mulai Rangkaian Emulator Lokal :
- Untuk menjalankan Emulator Suite secara interaktif, jalankan:
firebase emulators:start
- Untuk menjalankan Emulator Suite dan menjalankan skrip pengujian, jalankan:
firebase emulators:exec my-test.sh
- Untuk menjalankan Emulator Suite secara interaktif, jalankan:
Sekarang, jika Anda memiliki instance ekstensi yang tercantum dalam manifes Anda, Local Emulator Suite akan mengunduh kode sumber ekstensi tersebut ke ~/.cache/firebase/extensions
. Setelah diunduh, Rangkaian Emulator Lokal akan dimulai dan Anda akan dapat memicu salah satu fungsi yang dipicu latar belakang ekstensi dan menghubungkan aplikasi Anda ke rangkaian Emulator untuk menguji integrasinya dengan aplikasi Anda.
Terapkan konfigurasi ekstensi ke proyek
Setelah Anda menambahkan beberapa instance ekstensi ke manifes ekstensi, Anda dapat menerapkannya ke proyek menggunakan Firebase CLI. Saat Anda menerapkan dengan manifes ekstensi, Anda menginstal, memperbarui, dan mengonfigurasi semua instance ekstensi dalam manifes ke dalam proyek sekaligus.
Untuk menerapkan manifes ekstensi:
- Dari prompt shell, ubah ke direktori yang berisi konfigurasi ekstensi yang disimpan. (Ini adalah direktori yang berisi
firebase.json
. Jika Anda baru saja menjalankanext:export
, Anda sudah berada di direktori yang benar.) - Jalankan perintah
deploy
. Jika Anda ingin menerapkan ekstensi ke proyek selain yang sekarang, tentukan juga--project=
: l10nfirebase deploy --only extensions –-project=YOUR_PROJECT_ID
Perintah deploy
akan memvalidasi setiap konfigurasi instance, menanyakan apakah Anda ingin menghapus instance ekstensi apa pun dari proyek tujuan Anda yang tidak terdaftar di firebase.json
, lalu men-deploy semua instance ekstensi Anda.
Konfigurasi ekstensi khusus proyek
Konfigurasi ekstensi yang disimpan dapat digunakan untuk diterapkan ke beberapa proyek berbeda: misalnya, proyek pementasan dan proyek produksi. Saat melakukan ini, beberapa nilai parameter mungkin perlu berbeda untuk setiap proyek. File .env
khusus proyek memungkinkan ini:
- Masukkan nilai parameter yang berbeda antar proyek di
extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID
- Masukkan nilai parameter bersama di
extensions/ EXTENSION_INSTANCE_ID .env
.
Terkadang, Anda mungkin ingin menggunakan nilai parameter yang berbeda saat mengemulasi ekstensi Anda: misalnya, Anda mungkin ingin memberikan kunci API pengujian, bukan kunci produksi. Letakkan parameter ini di file .local
:
- Masukkan parameter non-rahasia yang ingin Anda gunakan selama emulasi di
extensions/ EXTENSION_INSTANCE_ID .env.local
- Masukkan nilai parameter rahasia di
extensions/ EXTENSION_INSTANCE_ID .secret.local