Panduan ini menunjukkan cara memigrasikan ekstensi Anda dari lingkungan Firebase Extensions yang tidak digunakan lagi ke kit fungsi yang dapat Anda instal dan deploy di codebase Cloud Functions untuk Firebase (generasi ke-2) Anda sendiri.
Firebase Extensions mengelola semua aspek pembuatan, pembaruan, dan penghapusan ekstensi. Function kit mengemas kemampuan ekstensi sebagai Cloud Functions for Firebase generasi ke-2 yang umum. Karena kit fungsi adalah Cloud Functions standar, Anda dapat membuat, mengupdate, menghapus, dan memecahkan masalahnya menggunakan Firebase CLI dalam project Firebase Anda. Panduan ini mempersiapkan Anda untuk mengelola fungsi sekarang dan mengadopsi update saat tersedia.
Di sepanjang panduan ini, ekstensi Stream Cloud Firestore to BigQuery
(firestore-bigquery-export) digunakan sebagai contoh yang menunjukkan
perintah dan output perintah untuk setiap langkah migrasi.
Menentukan jalur migrasi Anda
Firebase mendorong semua penayang Firebase Extensions untuk membuat pengganti ekstensi mereka sebagai kit fungsi yang dipublikasikan di npm. Anda dapat memeriksa apakah pengganti kit fungsi tersedia untuk ekstensi Anda dengan beberapa cara:
- Buka halaman Extensions di Firebase console untuk project Anda. Setiap ekstensi yang telah Anda instal akan menunjukkan apakah ekstensi tersebut memiliki pengganti function kit yang tersedia.
Jalankan
firebase ext:listdi dalam project Firebase Anda di terminal untuk menampilkan ekstensi terinstal mana yang memiliki pengganti resmi:firebase ext:list --project my-projecti extensions: ensuring required API firebaseextensions.googleapis.com is enabled... ✔ extensions: required API firebaseextensions.googleapis.com is enabled i extensions: list of extensions installed in my-project: ┌────────────────────────────────────┬───────────┬────────────────────────────────┬────────┬─────────┬─────────────────────┬───────────────────────────────────────────────────┐ │ Extension │ Publisher │ Instance ID │ State │ Version │ Your last update │ Replacement Kit │ ├────────────────────────────────────┼───────────┼────────────────────────────────┼────────┼─────────┼─────────────────────┼───────────────────────────────────────────────────┤ │ firebase/firestore-bigquery-export │ firebase │ firestore-bigquery-export-zbrp │ ACTIVE │ 0.3.2 │ 2026-06-10 18:35:03 │ @firebase-function-kits/firestore-bigquery-export │ ├────────────────────────────────────┼───────────┼────────────────────────────────┼────────┼─────────┼─────────────────────┼───────────────────────────────────────────────────┤ │ firebase/storage-resize-images │ firebase │ storage-resize-images │ ACTIVE │ 0.3.6 │ 2026-06-03 17:41:24 │ │ └────────────────────────────────────┴───────────┴────────────────────────────────┴────────┴─────────┴─────────────────────┴───────────────────────────────────────────────────┘ ⚠ Notice: Firebase Extensions will shut down on March 31, 2027. Learn more: https://firebase.google.com/docs/extensions/faq-and-troubleshooting
Jika pengganti kit fungsi resmi tersedia untuk ekstensi, Anda dapat memigrasikannya menggunakan bagian Melakukan migrasi ke kit fungsi di npm.
Jika tidak dapat menemukan pengganti yang dipublikasikan, Anda dapat melakukan fork pada kode ekstensi dan membuat pengganti Anda sendiri karena semua ekstensi bersifat open source. Untuk melakukannya, ikuti panduan Bermigrasi ke kit fungsi yang dibuat sendiri.
| Pilih jalur migrasi: | Bermigrasi ke kit fungsi di npm Bermigrasi ke kit fungsi yang dibuat sendiri |
Bermigrasi ke kit fungsi di npm
Memeriksa batasan migrasi yang diketahui
Sebelum mulai memigrasikan instance ekstensi, periksa apakah penyiapan Anda menggunakan salah satu fitur berikut yang memerlukan solusi atau belum didukung dalam kit fungsi:
- Repositori Docker kustom dan kunci KMS memerlukan solusi manual Cloud Functions for Firebase tidak mendukung parameter sistem pengganti untuk mengonfigurasi repositori Docker kustom atau Kunci Enkripsi yang Dikelola Pelanggan (kunci KMS). Jika ekstensi Anda mengonfigurasi salah satu parameter ini, lihat solusi FAQ.
Sebelum memulai
Anda perlu menyiapkan Firebase CLI dan
melakukan inisialisasi project
Firebase. Saat menggunakan CLI, pastikan
Anda menggunakan firebase-tools versi >= 15.32.0, yang memiliki perintah migrasi
dan kit fungsi baru.
Izin dan peran akun yang diperlukan
Bergantung pada apa yang perlu dibuat dan dikonfigurasi oleh Firebase CLI selama migrasi, akun yang Anda gunakan untuk melakukan autentikasi dengan Firebase dan Google Cloud harus memiliki peran berikut:
roles/firebaseextensions.editorroles/cloudbuild.builds.editorroles/artifactregistry.writerroles/run.developerroles/iam.serviceAccountUserroles/iam.serviceAccountCreatorroles/cloudfunctions.admin(jika Anda perlu melakukansetIamPermissionsuntuk endpoint publik)roles/secretmanager.admin(jika menggunakan secret)roles/serviceusage.serviceUsageAdmin(jika Anda perlu mengaktifkan API baru)
Sebaiknya gunakan akun yang telah menginstal ekstensi dan men-deploy fungsi sebelumnya, karena sebagian besar izin ini sudah diberikan. Jika akun yang dimigrasikan memerlukan lebih banyak peran, ikuti petunjuk IAM Google Cloud untuk menambahkannya.
Memilih alur kerja CLI
Untuk bermigrasi dari instance ekstensi ke kit fungsi yang tersedia di npm, pilih salah satu opsi berikut:
- (Direkomendasikan) Lakukan migrasi menggunakan perintah CLI
ext:migrate. Perintah ini men-deploy pengganti kit fungsi Anda sebelum meng-uninstal ekstensi yang digantikannya. - Melakukan migrasi menggunakan perintah CLI kit fungsi. Anda dapat menggunakan perintah terpisah untuk mengupdate ekstensi, menginstal kit fungsi, mengonfigurasinya seperti ekstensi, men-deploy kit, dan meng-uninstal ekstensi. Hal ini memberikan lebih banyak fleksibilitas untuk menyusun ulang perintah atau melakukan pekerjaan tambahan di antara langkah-langkah.
Bermigrasi menggunakan ext:migrate
Sekali per instance ekstensi, mulai migrasi dengan menjalankan:
firebase ext:migrate --project <project-id>
Perintah ini akan memandu Anda:
- Memilih ekstensi untuk dimigrasikan yang memiliki pengganti kit fungsi resmi yang tersedia.
- Memilih instance tertentu dari ekstensi tersebut.
- Mengupdate ekstensi ke versi terbaru jika perlu.
- Menginstal kit fungsi, mengonfigurasi instance secara identik dengan cara instance ekstensi dikonfigurasi.
- Men-deploy kit fungsi.
- Memverifikasi bahwa kit fungsi berhasil di-deploy dan semua hook siklus proses, jika ada, telah dijalankan.
- Meng-uninstal instance ekstensi.
Jika Anda mengetahui ekstensi atau instance ekstensi tertentu yang ingin dimigrasikan, tentukan menggunakan flag command line berikut:
firebase ext:migrate --extension firebase/firestore-bigquery-export --project <project-id>
# or
firebase ext:migrate --ext-instance firestore-bigquery-export-abcd --project <project-id>
Jika Anda mengetahui paket tertentu yang ingin dimigrasikan, terutama jika paket tersebut bukan
paket pengganti resmi yang tercantum oleh Google, tentukan paket tersebut menggunakan
flag --package:
firebase ext:migrate --ext-instance firestore-bigquery-export-abcd --package @firebase-function-kits/firestore-bigquery-export --project <project-id>
Memverifikasi deployment kit fungsi
Untuk memastikan bahwa firebase deploy kit tidak mengalami error, periksa
log deployment untuk melihat apakah ada hook siklus proses yang dipicu. Ekstensi populer, seperti Stream Cloud Firestore ke BigQuery, menggunakan hook siklus proses. Berikut adalah contoh tampilan hook siklus proses saat dipicu:
i functions: Executing afterFirstDeploy lifecycle hook targeting: kit-firestore-bigquery-export-initBigQuerySync...
✔ functions: Successfully queued task for lifecycle hook kit-firestore-bigquery-export-initBigQuerySync in queue projects/my-project/locations/europe-west1/queues/kit-firestore-bigquery-export-initBigQuerySync.
i functions: View logs for afterFirstDeploy at: https://console.cloud.google.com/logs/query;query=resource.type%3D%22cloud_run_revision%22%0Aresource.labels.service_name%3D%22kit-firestore-bigquery-export--initbigquerysync%22%0Aresource.labels.location%3D%22europe-west1%22;project=my-project
Pesan log ini mengonfirmasi hal berikut:
- Hook siklus proses ditemukan dan dijalankan.
- Tugas dimasukkan ke dalam task queue yang terkait dengan hook siklus proses.
- Link ke Cloud Logging disediakan agar Anda dapat memvalidasi bahwa tugas selesai tanpa error.
Ikuti link log ke konsol Google Cloud untuk memvalidasi bahwa tidak ada error dalam log dan peristiwa task queue Anda berhasil diproses. Jika peristiwa siklus proses tidak berhasil dijalankan, Anda dapat memicunya kembali dengan menjalankan:
firebase functions:lifecycle:run <hook-name> <codebase>
Jika Anda men-deploy instance kit fungsi untuk pertama kalinya, jalankan:
firebase functions:lifecycle:run afterFirstDeploy <kit-instance-id>
Jika selama validasi Anda memutuskan untuk menghentikan atau mengurungkan migrasi ini, Anda dapat meng-uninstal kit menggunakan petunjuk di Meng-uninstal ekstensi.
Setelah memverifikasi bahwa deployment awal kit fungsi Anda telah berhasil diselesaikan, Anda perlu memvalidasi bahwa fungsi kit tersebut benar-benar berfungsi seperti yang diharapkan. Karena ekstensi itu sendiri masih berjalan, Anda harus berhati-hati bahwa yang Anda periksa bukan hanya salah satu dari keduanya yang telah berfungsi, karena ekstensi telah dan akan terus berfungsi.
Jika pemrosesan tidak berubah dan Anda tidak melihat hasil duplikat dari ekstensi dan kit, opsi terbaik adalah memeriksa langsung log untuk kit setelah memicu fungsi kit.
Contoh Penerapan: Melakukan streaming Cloud Firestore ke BigQuery
Dengan Ekstensi Stream Cloud Firestore ke BigQuery, penulisan ke Tabel Changelog Mentah (*_raw_changelog) dan tabel tampilan terbaru (*_raw_latest) akan dihapus duplikatnya jika peristiwa yang sama dikirim ke kit dan ekstensi. Jadi, Anda tidak dapat menggunakan keberadaan baris atau baris duplikat di BigQuery untuk memvalidasi bahwa kit berfungsi.
Anda dapat melihat log fungsi segera setelah menulis ke koleksi Firestore menggunakan firebase functions:logs dan mencari entri log yang menunjukkan bahwa fungsi tersebut berhasil memproses penulisan. Untuk kit ini dengan ID instance default
firestore-bigquery-export akan terlihat seperti:
2026-09-25T19:52:46.328612Z I kit-firestore-bigquery-export-fsexportbigquery: Started execution of extension
2026-09-25T19:52:46.328644Z I kit-firestore-bigquery-export-fsexportbigquery: {"message":"Firestore event received by onDocumentWritten trigger","document_name":"projects/extensions-eventarc-testing/databases/(default)/documents/exported-messages/cmGP6XLyksqGdw2OgTOq","operation":0,"event_id":"9f59a2a4-1a5e-4c41-a32d-561e3c734502"}
2026-09-25T19:52:46.616064Z I kit-firestore-bigquery-export-fsexportbigquery: Completed execution of extension
2026-09-2
Jika memiliki banyak log, Anda dapat memfilter ke fungsi kit tertentu menggunakan perintah berikut:
firebase functions:log --only <function name>
Untuk menemukan nama fungsi tertentu untuk instance kit, Anda dapat menggunakan perintah berikut:
firebase functions:list | grep kit-<kit instance id>
Untuk contoh ini:
firebase functions:list | grep kit-firestore-bigquery-export
│ kit-firestore-bigquery-export-fsexportbigquery │ v2 │ google.cloud.firestore.document.v1.written │
│ kit-firestore-bigquery-export-initBigQuerySync │ v2 │ taskQueue │
│ kit-firestore-bigquery-export-setupBigQuerySync │ v2 │ taskQueue │
│ kit-firestore-bigquery-export-syncBigQuery │ v2 │ taskQueue │
Meninjau README kit fungsi
Beberapa kit mungkin memerlukan pekerjaan tambahan selain yang ditangani secara otomatis oleh
kit fungsi. Tinjau README untuk kit yang Anda instal dan ikuti petunjuk tambahan.
Melakukan migrasi menggunakan CLI kit fungsi
Sebelum memulai, identifikasi dan catat ID instance ekstensi yang ingin Anda migrasikan ke kit dan nama paket npm kit penggantinya. Anda
dapat menemukan keduanya menggunakan output firebase ext:list. Lihat
Menentukan jalur migrasi Anda untuk contoh penggunaan
ext:list.
1. Mengupgrade instance ekstensi ke versi terbaru
Anda harus mengupdate ekstensi ke versi terbaru untuk meminimalkan perbedaan antara instance ekstensi dan kit penggantinya. Jika ekstensi Anda tidak diupgrade, mungkin akan ada perubahan signifikan yang dapat menyebabkan gangguan antara instance ekstensi dan pengganti kit-nya. Konfigurasi yang diekspor mungkin tidak sesuai dengan yang diharapkan kit karena perubahan parameter di berbagai versi.
Gunakan salah satu opsi berikut untuk mengupdate ekstensi, bergantung pada tempat ekstensi diinstal:
- Dari Firebase console
- Dari Firebase CLI menggunakan:
firebase ext:update <extension-instance-id> --project <project-id> firebase deploy --only extensions --project <project-id>
Jika Anda melewati langkah ini, CLI akan meminta Anda untuk mengupgrade saat mengekspor konfigurasi jika ekstensi Anda tidak menggunakan versi terbaru.
2. Meninjau dan menginstal instance kit fungsi pengganti
Anda dapat menginstal kit fungsi menggunakan perintah CLI berikut:
firebase functions:kits:install --template migration --no-configure --package <npm-package-name> --project <project-id>
Saat Anda memilih ID instance untuk kit Anda selama penginstalan, pastikan untuk mencatatnya untuk digunakan nanti dalam petunjuk migrasi.
Setelah kit diinstal, direktori baru akan dibuat di dalam project Firebase Anda dengan lokasi seperti function-kits/<kit-name>/source yang berisi paket npm dengan kit yang menggantikan ekstensi Anda dan file index.ts dasar yang mengekspor fungsi tersebut agar Firebase dapat men-deploy dan menetapkan konfigurasi kustom.
Tinjau README untuk kit dan ikuti petunjuk tambahan yang tercantum di sana.
Jika Anda memiliki beberapa instance kit dalam project yang sama, Anda dapat mengulangi perintah ini untuk membuat instance baru dari kit yang sama. Anda juga dapat men-deploy satu instance kit ke dua project Firebase yang berbeda dengan konfigurasi yang berbeda (misalnya, project staging dan project produksi). Untuk mempelajari lebih lanjut penyiapan lanjutan ini, lihat Migrasi lanjutan.
Contoh yang berhasil:
firebase functions:kits:install --template migration --no-configure --package @firebase-function-kits/firestore-bigquery-export --project my-project
3. Konfigurasikan instance kit fungsi secara identik dengan ekstensi
Anda perlu menyesuaikan instance kit ini dengan konfigurasi yang identik dengan ekstensi yang digantikannya. Anda dapat mengekspor konfigurasi instance ekstensi ke file .env, yang menyimpan data konfigurasi parameter, variabel lingkungan, dan referensi secret untuk semua Cloud Functions, termasuk kit. Untuk mengekspornya langsung ke file konfigurasi kit Anda, jalankan:
firebase ext:export --mode functions --instance <extension-instance-id> --kit-instance <kit-instance-id> --project <project-id>
Di akhir langkah ini, informasi konfigurasi untuk instance ini
disimpan dalam file .env khusus project di direktori konfigurasi instance, seperti:
function-kits/<kit-name>/config-<instance-id>/.env.<project-id>
4. Men-deploy dan memverifikasi penggantian kit
Setelah kit diinstal dan tersedia sebagai kumpulan fungsi, Anda dapat men-deploy pengganti kit. Kit fungsi berfungsi seperti fungsi standar, dengan setiap instance kit bertindak sebagai codebase terpisah untuk mengatur fungsi Anda. Anda dapat memilih untuk men-deploy semua fungsi atau hanya instance kit tertentu. Saat memigrasikan satu instance ekstensi, deploy hanya instance kit tersebut.
Jika kit Anda menggunakan parameter baru yang tidak ada dalam instance ekstensi yang Anda migrasikan, Firebase CLI akan meminta parameter tersebut di awal proses deployment. Hal ini tidak diharapkan dalam contoh yang berhasil ini
dari ekstensi firestore-bigquery-export terbaru, tetapi banyak kit yang meminta
parameter baru untuk setiap sumber pemicu peristiwa yang digunakan oleh kit. Sebagai bagian dari
migrasi ini, kit yang diupdate menggunakan fungsi generasi ke-2, sedangkan ekstensi sebelumnya
menggunakan fungsi generasi ke-1. Di generasi ke-2, fungsi terletak di dekat sumber peristiwanya dan ditambahkan sebagai parameter tambahan. Dalam update mendatang, jika parameter baru ditambahkan, CLI akan meminta Anda pada deployment berikutnya.
Contoh yang berhasil:
firebase deploy --only functions:firestore-bigquery-export --project my-project
Output:
=== Deploying to 'my-project'...
i deploying functions
i functions: Loaded environment variables from function-kits/firestore-bigquery-export/config-firestore-bigquery-export/.env.my-project
i functions: ensuring required API bigquery.googleapis.com is enabled...
i functions: ensuring required API cloudtasks.googleapis.com is enabled...
✔ functions: required APIs are enabled
i functions: granting declarative IAM roles to managed service account:
- BigQuery Data Editor
- BigQuery User
- Cloud Datastore User
- Eventarc Event Receiver
- roles/run.invoker
✔ functions: successfully granted IAM roles
i functions: creating Node.js 22 (2nd Gen) function kit-firestore-bigquery-export-fsexportbigquery(us-central1)...
i functions: creating Node.js 22 (2nd Gen) function kit-firestore-bigquery-export-initBigQuerySync(us-central1)...
i functions: creating Node.js 22 (2nd Gen) function kit-firestore-bigquery-export-setupBigQuerySync(us-central1)...
✔ functions[kit-firestore-bigquery-export-fsexportbigquery(us-central1)] Successful create operation.
✔ functions[kit-firestore-bigquery-export-initBigQuerySync(us-central1)] Successful create operation.
✔ functions[kit-firestore-bigquery-export-setupBigQuerySync(us-central1)] Successful create operation.
i functions: Executing afterFirstDeploy lifecycle hook targeting: kit-firestore-bigquery-export-initBigQuerySync...
✔ functions: Successfully queued task for lifecycle hook kit-firestore-bigquery-export-initBigQuerySync in queue projects/my-project/locations/us-central1/queues/kit-firestore-bigquery-export-initBigQuerySync.
✔ Deploy complete!
Untuk memastikan bahwa firebase deploy kit tidak mengalami error, periksa
log deployment untuk melihat apakah ada hook siklus proses yang dipicu. Ekstensi populer, seperti Stream Cloud Firestore ke BigQuery, menggunakan hook siklus proses. Berikut adalah contoh tampilan hook siklus proses saat dipicu:
i functions: Executing afterFirstDeploy lifecycle hook targeting: kit-firestore-bigquery-export-initBigQuerySync...
✔ functions: Successfully queued task for lifecycle hook kit-firestore-bigquery-export-initBigQuerySync in queue projects/my-project/locations/europe-west1/queues/kit-firestore-bigquery-export-initBigQuerySync.
i functions: View logs for afterFirstDeploy at: https://console.cloud.google.com/logs/query;query=resource.type%3D%22cloud_run_revision%22%0Aresource.labels.service_name%3D%22kit-firestore-bigquery-export--initbigquerysync%22%0Aresource.labels.location%3D%22europe-west1%22;project=my-project
Pesan log ini mengonfirmasi hal berikut:
- Hook siklus proses ditemukan dan dijalankan.
- Tugas dimasukkan ke dalam task queue yang terkait dengan hook siklus proses.
- Link ke Cloud Logging disediakan agar Anda dapat memvalidasi bahwa tugas selesai tanpa error.
Ikuti link log ke konsol Google Cloud untuk memvalidasi bahwa tidak ada error dalam log dan peristiwa task queue Anda berhasil diproses. Jika peristiwa siklus proses tidak berhasil dijalankan, Anda dapat memicunya kembali dengan menjalankan:
firebase functions:lifecycle:run <hook-name> <codebase>
Jika Anda men-deploy instance kit fungsi untuk pertama kalinya, jalankan:
firebase functions:lifecycle:run afterFirstDeploy <kit-instance-id>
Jika selama validasi Anda memutuskan untuk menghentikan atau mengurungkan migrasi ini, Anda dapat meng-uninstal kit menggunakan petunjuk di Meng-uninstal ekstensi.
Setelah memverifikasi bahwa deployment awal kit fungsi Anda telah berhasil diselesaikan, Anda perlu memvalidasi bahwa fungsi kit tersebut benar-benar berfungsi seperti yang diharapkan. Karena ekstensi itu sendiri masih berjalan, Anda harus berhati-hati bahwa yang Anda periksa bukan hanya salah satu dari keduanya yang telah berfungsi, karena ekstensi telah dan akan terus berfungsi.
Jika pemrosesan tidak berubah dan Anda tidak melihat hasil duplikat dari ekstensi dan kit, opsi terbaik adalah memeriksa langsung log untuk kit setelah memicu fungsi kit.
Contoh Penerapan: Melakukan streaming Cloud Firestore ke BigQuery
Dengan Ekstensi Stream Cloud Firestore ke BigQuery, penulisan ke Tabel Changelog Mentah (*_raw_changelog) dan tabel tampilan terbaru (*_raw_latest) akan dihapus duplikatnya jika peristiwa yang sama dikirim ke kit dan ekstensi. Jadi, Anda tidak dapat menggunakan keberadaan baris atau baris duplikat di BigQuery untuk memvalidasi bahwa kit berfungsi.
Anda dapat melihat log fungsi segera setelah menulis ke koleksi Firestore menggunakan firebase functions:logs dan mencari entri log yang menunjukkan bahwa fungsi tersebut berhasil memproses penulisan. Untuk kit ini dengan ID instance default
firestore-bigquery-export akan terlihat seperti:
2026-09-25T19:52:46.328612Z I kit-firestore-bigquery-export-fsexportbigquery: Started execution of extension
2026-09-25T19:52:46.328644Z I kit-firestore-bigquery-export-fsexportbigquery: {"message":"Firestore event received by onDocumentWritten trigger","document_name":"projects/extensions-eventarc-testing/databases/(default)/documents/exported-messages/cmGP6XLyksqGdw2OgTOq","operation":0,"event_id":"9f59a2a4-1a5e-4c41-a32d-561e3c734502"}
2026-09-25T19:52:46.616064Z I kit-firestore-bigquery-export-fsexportbigquery: Completed execution of extension
2026-09-2
Jika memiliki banyak log, Anda dapat memfilter ke fungsi kit tertentu menggunakan perintah berikut:
firebase functions:log --only <function name>
Untuk menemukan nama fungsi tertentu untuk instance kit, Anda dapat menggunakan perintah berikut:
firebase functions:list | grep kit-<kit instance id>
Untuk contoh ini:
firebase functions:list | grep kit-firestore-bigquery-export
│ kit-firestore-bigquery-export-fsexportbigquery │ v2 │ google.cloud.firestore.document.v1.written │
│ kit-firestore-bigquery-export-initBigQuerySync │ v2 │ taskQueue │
│ kit-firestore-bigquery-export-setupBigQuerySync │ v2 │ taskQueue │
│ kit-firestore-bigquery-export-syncBigQuery │ v2 │ taskQueue │
5. Meng-uninstal ekstensi
Setelah memverifikasi kit fungsi yang di-deploy, Anda dapat meng-uninstal ekstensi agar tidak menduplikasi perilakunya sekali untuk kit dan sekali untuk ekstensi. Anda dapat meng-uninstal semua ekstensi dari Firebase CLI, terlepas dari cara Anda menginstalnya, jika Anda meneruskan flag --immediate:
firebase ext:uninstall <extension-instance-id> --project <project-id> --immediate
Contoh yang berhasil:
firebase ext:uninstall firestore-bigquery-export --project my-project --immediate
Output:
i extensions: uninstalling firestore-bigquery-export...
i extensions: deleting extension instance resources in project my-project...
✔ extensions: successfully uninstalled firestore-bigquery-export
Migrasi lanjutan
Anda dapat memiliki ekstensi di beberapa project Firebase yang ingin Anda
kelola dengan satu codebase. Misalnya, jika Anda men-deploy infrastruktur yang sama ke lingkungan testing dan lingkungan production, yang masing-masing memiliki instance documents Cloud Firestore yang Anda ekspor ke BigQuery, Anda mungkin memiliki dua instance ekstensi firestore-bigquery-export yang diinstal:
export-documents-testingexport-documents-production
Jika Anda memigrasikan kedua instance ekstensi ini ke dua instance kit fungsi dalam
satu codebase saat menggunakan Firebase CLI dan di-deploy menggunakan
firebase deploy --project testing dan firebase deploy --project production,
setiap deployment akan membuat dua instance di lingkungan testing dan production.
Sebagai gantinya, ganti dua instance ekstensi dengan satu instance kit fungsi
firestore-bigquery-export yang di-deploy ke beberapa project, dengan setiap project
memiliki konfigurasinya sendiri. Direktori konfigurasi Anda untuk instance akan
terlihat seperti berikut:
config-export-documents/.env.testing.env.production
Setiap deployment ke testing dan production akan membuat satu instance kit Anda
dengan konfigurasi yang sesuai. Perintah CLI yang ada akan membuat penyiapan ini selama Anda meneruskan flag --project di setiap pemanggilan ext:migrate atau functions:kits:install.
Contoh yang berhasil:
firebase functions:kits:install --package @firebase-function-kits/firestore-bigquery-export --project testing --no-configure --template migration
✔ What would you like to name this kit? firestore-bigquery-export
✔ What would you like to name this instance? export-documents
✔ Wrote function-kits/firestore-bigquery-export/source/package.json
✔ Wrote function-kits/firestore-bigquery-export/source/tsconfig.json
✔ Wrote function-kits/firestore-bigquery-export/source/.gitignore
✔ Wrote function-kits/firestore-bigquery-export/source/src/index.ts
i functions: Running npm install
✔ Wrote configuration info to firebase.json
✔ functions: Function kit firestore-bigquery-export successfully installed.
# This creates the export-documents instance with an empty .env.testing file
# for the testing project. Now populate it via export:
firebase ext:export --mode functions --instance export-documents-testing \
--kit-instance export-documents --project testing
# Repeat the export for production into the same kit instance to create
# .env.production from the export-documents-prod instance:
firebase ext:export --mode functions --instance export-documents-prod \
--kit-instance export-documents --project production
Sekarang Anda memiliki satu instance kit yang dikonfigurasi untuk di-deploy ke project testing dan
production dengan konfigurasinya masing-masing. Jika Anda membuat instance di project testing dan menjalankan perintah functions:kits:install untuk paket yang sama di project production, Anda akan diminta dengan opsi untuk menggunakan kembali instance yang dikonfigurasi untuk testing atau menginstal instance kedua.