Setelah menginstal dan mengonfigurasi ekstensi di project Firebase, Anda dapat menyimpan konfigurasi dan men-deploy-nya ke project lain. Konfigurasi yang Anda simpan berisi informasi tentang setiap instance ekstensi yang telah diinstal, termasuk versi setiap instance dan parameter value yang Anda tentukan saat menginstalnya.
Hal ini memiliki beberapa kemungkinan penggunaan:
- Membuat ulang konfigurasi Ekstensi project di project lainnya
- Membagikan konfigurasi Ekstensi kepada orang lain
- Melakukan commit konfigurasi Ekstensi ke kontrol sumber
- Menambahkan Ekstensi ke pipeline CI/CD
Menyimpan konfigurasi Ekstensi project
Untuk menyimpan konfigurasi Ekstensi project, lakukan hal berikut:
- Jika Anda belum melakukannya, siapkan Firebase CLI
- Dari perintah shell, ubah ke direktori project. (Direktori project Anda berisi file
firebase.json
). - Jalankan perintah
ext:export
:firebase ext:export –-project=YOUR_PROJECT_ID
Perintah ext:export
akan menambahkan bagian extensions
ke file firebase.json
. Contoh:
{
"extensions": {
"my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
"my-image-resizer": "firebase/storage-resize-images@^0.1.22",
}
}
Selain itu, perintah ext:export
akan membuat direktori extensions
yang berisi file .env
untuk setiap instance ekstensi yang telah diinstal. File ini berisi parameter konfigurasi untuk setiap instance. Misalnya, instance storage-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
Men-deploy konfigurasi Ekstensi ke project
Setelah menyimpan konfigurasi Ekstensi project, Anda dapat men-deploy-nya ke project menggunakan Firebase CLI. Saat men-deploy konfigurasi Ekstensi, Anda menginstal, mengupdate, dan mengonfigurasi semua instance ekstensi dalam konfigurasi yang tersimpan ke project sekaligus.
Cara men-deploy konfigurasi Ekstensi:
- Dari perintah shell, ubah ke direktori yang berisi konfigurasi Ekstensi yang disimpan. (Ini adalah direktori yang berisi
firebase.json
. Jika baru saja menjalankanext:export
, Anda sudah berada di direktori yang tepat.) - Jalankan perintah
deploy
, yang menentukan project yang menjadi tujuan deployment ekstensi Anda:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
Perintah deploy
akan memvalidasi setiap konfigurasi instance, menanyakan apakah Anda ingin menghapus instance ekstensi dari project tujuan yang tidak tercantum dalam firebase.json
, lalu men-deploy semua instance ekstensi Anda.
Konfigurasi Ekstensi Khusus Project
Konfigurasi Ekstensi yang tersimpan dapat digunakan untuk men-deploy ke beberapa project berbeda, misalnya project staging dan produksi. Saat melakukannya, beberapa nilai parameter mungkin harus berbeda untuk setiap project. Anda dapat melakukannya dengan file .env khusus project. Nilai parameter yang berbeda antar project dapat ditempatkan di extensions/${extensionInstanceId}.env.${projectIdOrAlias} dan nilai parameter bersama dapat ditempatkan di extensions/${extensionInstanceId}.env.