Bu kılavuzda, uzantılarınızı desteği sonlandırılan Firebase Extensions ortamından, Firebase (2. nesil) için kendi Cloud Functions kod tabanınıza yükleyip dağıtabileceğiniz bir işlev kitine nasıl taşıyacağınız gösterilmektedir.
Firebase Extensions, uzantı oluşturma, güncelleme ve kaldırma işlemlerinin tüm yönlerini yönetti. İşlev kitleri, uzantıların özelliklerini tipik 2. nesil Cloud Functions for Firebase olarak paketler. İşlev kitleri standart Cloud Functions olduğundan bunları Firebase projenizdeki Firebase CLI'yı kullanarak oluşturur, günceller, siler ve sorunlarını giderirsiniz. Bu kılavuz, işlevlerinizi yönetmenize ve güncellemeleri kullanıma sunuldukça uygulamanıza yardımcı olur.
Bu kılavuzda, geçişin her adımına ait komutları ve komut çıkışlarını göstermek için örnek olarak Cloud Firestore'dan BigQuery'ya akış uzantısı (firestore-bigquery-export) kullanılmıştır.
Taşıma yolunuzu belirleme
Firebase, tüm Firebase Extensions yayıncılarını uzantıları için npm'de yayınlanan işlev kitleri olarak alternatifler oluşturmaya teşvik eder. Uzantılarınız için işlev kiti değişiminin mevcut olup olmadığını birkaç farklı şekilde kontrol edebilirsiniz:
- Projeniz için Firebase konsolunun Uzantılar sayfasına gidin. Yüklediğiniz her uzantı, işlev kiti değişiminin mevcut olup olmadığını gösterir.
Yüklü uzantılarınızdan hangilerinin resmi alternatifleri olduğunu görmek için terminalde Firebase projenizin içinde
firebase ext:listkomutunu çalıştırın: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
Uzantınız için resmi bir işlev kiti değişimi mevcutsa npm'de işlev kitlerine taşıma bölümünü kullanarak uzantınızı taşıyabilirsiniz.
Yayınlanmış bir alternatif bulamazsanız tüm uzantılar açık kaynaklı olduğundan uzantı kodunu kopyalayabilir ve kendi alternatifinizi oluşturabilirsiniz. Bunun için Kendi oluşturduğunuz bir işlev kitine geçiş yapma kılavuzundaki adımları uygulayın.
| Taşıma yolunu seçin: | npm'deki işlev kitlerine geçiş yapma Kendi oluşturduğunuz bir işlev kitine geçiş yapma |
npm'de işlev kitlerine geçiş yapma
Bilinen taşıma sınırlamalarını kontrol etme
Bir uzantı örneğini taşımaya başlamadan önce, kurulumunuzda geçici çözüm gerektiren veya işlev kitlerinde henüz desteklenmeyen aşağıdaki özelliklerden herhangi birinin kullanılıp kullanılmadığını kontrol edin:
- Özel Docker depoları ve KMS anahtarları için manuel bir geçici çözüm gerekir Cloud Functions for Firebase, özel bir Docker deposu veya müşteri tarafından yönetilen şifreleme anahtarı (KMS anahtarı) yapılandırmak için sistem parametrelerinin değiştirilmesini desteklemez. Uzantınız bu parametrelerden birini yapılandırıyorsa SSS'deki geçici çözüme bakın.
Başlamadan önce
Firebase CLI'yı kurmanız ve bir Firebase projesi başlatmanız gerekir. KSA'yı kullanırken yeni taşıma ve işlev kiti komutlarını içeren firebase-tools sürüm >= 15.32.0'i kullandığınızdan emin olun.
Gerekli hesap izinleri ve rolleri
Taşıma sırasında Firebase CLI tarafından oluşturulması ve yapılandırılması gerekenlere bağlı olarak, Firebase ve Google Cloud ile kimlik doğrulaması yapmak için kullandığınız hesabın aşağıdaki rollere sahip olması gerekir:
roles/firebaseextensions.editorroles/cloudbuild.builds.editorroles/artifactregistry.writerroles/run.developerroles/iam.serviceAccountUserroles/iam.serviceAccountCreatorroles/cloudfunctions.admin(Herkese açık uç noktalar içinsetIamPermissionsyapmanız gerekiyorsa)roles/secretmanager.admin(gizli anahtarlar kullanılıyorsa)roles/serviceusage.serviceUsageAdmin(yeni API'leri etkinleştirmeniz gerekiyorsa)
Bu izinlerin çoğu zaten verilmiş olacağından, daha önce uzantı yüklemiş ve işlev dağıtmış bir hesap kullanmanızı öneririz. Taşıma işlemini gerçekleştiren hesabınızın daha fazla role ihtiyacı varsa bunları eklemek için Google Cloud IAM talimatlarını uygulayın.
KSA iş akışı seçme
Bir uzantı örneğinden npm'de bulunan bir işlev kitine geçiş yapmak için aşağıdaki seçeneklerden birini belirleyin:
- (Önerilir)
ext:migrateKSA komutunu kullanarak taşıma işlemi yapın. Bu komut, değiştirdiği uzantıyı kaldırmadan önce işlev kiti değişimini dağıtır. - İşlev kitleri KSA komutlarını kullanarak taşıyın. Uzantınızı güncellemek, bir işlev kiti yüklemek, kiti uzantı gibi yapılandırmak, kiti dağıtmak ve uzantıyı kaldırmak için ayrı komutlar kullanabilirsiniz. Bu sayede, komutları yeniden sıralama veya adımlar arasında ek işlemler yapma konusunda daha fazla esneklik elde edersiniz.
ext:migrate kullanarak taşıma
Her uzantı örneği için bir kez, aşağıdakini çalıştırarak taşıma işlemi başlatın:
firebase ext:migrate --project <project-id>
Bu komut, aşağıdaki adımlarda size yol gösterir:
- Resmi bir işlev kiti alternatifi bulunan bir uzantıyı taşıma
- Bu uzantının belirli bir örneğini seçme.
- Gerekirse uzantıyı en yeni sürümüne güncelleme
- İşlev kitini yükleme, bir örneği uzantı örneğinin yapılandırıldığı şekilde yapılandırma.
- İşlev kiti dağıtılıyor.
- İşlev kitinin başarıyla dağıtıldığını ve varsa tüm yaşam döngüsü kancalarının çalıştığını doğrulama.
- Uzantı örneği kaldırılıyor.
Taşımak istediğiniz uzantıyı veya uzantı örneğini biliyorsanız aşağıdaki komut satırı işaretlerini kullanarak belirtin:
firebase ext:migrate --extension firebase/firestore-bigquery-export --project <project-id>
# or
firebase ext:migrate --ext-instance firestore-bigquery-export-abcd --project <project-id>
Geçiş yapmak istediğiniz belirli bir paket varsa (özellikle de Google tarafından listelenen resmi bir yedek paket değilse) --package işaretini kullanarak paketi belirtin:
firebase ext:migrate --ext-instance firestore-bigquery-export-abcd --package @firebase-function-kits/firestore-bigquery-export --project <project-id>
İşlev kiti dağıtımını doğrulama
Kitin firebase deploy işleminde hata olmadığını doğrulamak için dağıtım günlüklerini kontrol ederek yaşam döngüsü kancalarının tetiklenip tetiklenmediğine bakın. Stream Cloud Firestore to BigQuery gibi popüler uzantılar, yaşam döngüsü kancalarını kullanır. Aşağıda, tetiklenen bir yaşam döngüsü kancasının nasıl göründüğüne dair bir örnek verilmiştir:
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
Bu günlük mesajları aşağıdakileri doğrular:
- Bir yaşam döngüsü kancası bulundu ve yürütüldü.
- Yaşam döngüsü kancasının ilişkili görev sırasında bir görev sıraya alındı.
- Görevin hatasız tamamlandığını doğrulayabilmeniz için Cloud Logging bağlantısı sağlandı.
Günlüklerde hata olmadığını ve görev sırası etkinliğinizin başarıyla işlendiğini doğrulamak için günlük bağlantısını takip ederek Google Cloud konsoluna gidin. Yaşam döngüsü olayı başarıyla yürütülmediyse şu komutu çalıştırarak yeniden tetikleyebilirsiniz:
firebase functions:lifecycle:run <hook-name> <codebase>
Bir işlev kiti örneğini ilk kez dağıtıyorsanız şunu çalıştırın:
firebase functions:lifecycle:run afterFirstDeploy <kit-instance-id>
Doğrulama sırasında herhangi bir zamanda bu taşıma işlemini durdurmak veya geri almak isterseniz Uzantıyı kaldırma bölümündeki talimatları uygulayarak kiti kaldırabilirsiniz.
İşlev kitinizin ilk dağıtımının başarıyla tamamlandığını doğruladıktan sonra kitin işlevinin gerçekten beklendiği gibi çalıştığını doğrulamanız gerekir. Uzantı çalışmaya devam ettiği için, kontrol ettiğiniz şeyin yalnızca ikisinden birinin çalışıp çalışmadığı olmadığından emin olmanız gerekir. Çünkü uzantı çalışmaya devam edecektir.
İşleme değiştirilmezse ve uzantı ile kitin yinelenen sonuçlarını görmezseniz en iyi seçenek, kitin işlevini tetikledikten sonra kitin günlüklerini doğrudan incelemektir.
Uygulamalı Örnek: Cloud Firestore'ten BigQuery'e akış
Stream Cloud Firestore to BigQuery uzantısı, hem ham değişiklik günlüğü tablosuna (*_raw_changelog) hem de en son görünüm tablosuna (*_raw_latest) yazar. Aynı etkinlik hem kite hem de uzantıya gönderilirse yinelenenler kaldırılır. Bu nedenle, kitin çalıştığını doğrulamak için BigQuery'de satırların veya yinelenen satırların varlığını kullanamazsınız.
firebase functions:logs kullanarak Firestore koleksiyonunuza yazma işlemi yaptıktan kısa bir süre sonra işlev günlüklerini görüntüleyebilir ve yazma işleminin başarıyla tamamlandığını gösteren bir günlük girişi olup olmadığını kontrol edebilirsiniz. Varsayılan örnek kimliği firestore-bigquery-export olan bu kit için
şu şekilde görünür:
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
Çok sayıda günlüğünüz varsa aşağıdaki komutu kullanarak belirli bir kit işlevine göre filtreleme yapabilirsiniz:
firebase functions:log --only <function name>
Bir kit örneğinin belirli işlev adlarını bulmak için aşağıdaki komutu kullanabilirsiniz:
firebase functions:list | grep kit-<kit instance id>
Bu örnekte:
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 │
İşlev kiti BENİOKU dosyasını inceleme
Bazı kitler, işlev kitleri tarafından otomatik olarak gerçekleştirilen işlemlerin dışında ek çalışma gerektirebilir. Yüklediğiniz kitin README sayfasını inceleyin ve ek talimatları uygulayın.
İşlev kitleri CLI'sını kullanarak taşıma
Başlamadan önce, bir kite taşımak istediğiniz uzantının örnek kimliğini ve yeni kitinin npm paket adını belirleyip not edin. Bunların her ikisini de firebase ext:list komutunun çıkışında bulabilirsiniz. ext:list kullanımına dair bir örnek için Taşıma yolunuzu belirleme bölümüne bakın.
1. Uzantı örneğinizi en yeni sürüme yükseltme
Uzantı örneğiniz ile değiştirme kiti arasındaki farkı en aza indirmek için uzantınızı en yeni sürüme güncellemeniz gerekir. Uzantınız yükseltilmezse uzantı örneğiniz ile kit değişimi arasında önemli ve zarar veren değişiklikler olabilir. Dışa aktarılan yapılandırma, sürümler arasındaki parametre değişiklikleri nedeniyle kitin beklediğiyle eşleşmeyebilir.
Uzantınızı, yüklendiği yere bağlı olarak aşağıdaki seçeneklerden birini kullanarak güncelleyin:
- Firebase konsolundan
- Firebase KSA'dan şunu kullanarak:
firebase ext:update <extension-instance-id> --project <project-id> firebase deploy --only extensions --project <project-id>
Bu adımı atlarsanız ve uzantınız en yeni sürümde değilse CLI, yapılandırmayı dışa aktarırken yükseltme yapmanızı ister.
2. Yeni işlev kiti örneğini inceleyip yükleme
İşlev kitini aşağıdaki CLI komutunu kullanarak yükleyebilirsiniz:
firebase functions:kits:install --template migration --no-configure --package <npm-package-name> --project <project-id>
Yükleme sırasında kitiniz için bir örnek kimliği seçtiğinizde, taşıma talimatlarında daha sonra kullanmak üzere bu kimliği not edin.
Kit yüklendikten sonra Firebase projenizde function-kits/<kit-name>/source gibi bir konumda yeni bir dizin oluşturulur. Bu dizinde, uzantınızın yerini alan kiti içeren npm paketi ve Firebase'un özel yapılandırmayı dağıtması ve ayarlaması için bu işlevleri dışa aktaran temel bir index.ts dosyası bulunur.
Kitle ilgili README dosyasını inceleyin ve orada listelenen ek talimatları uygulayın.
Aynı projede kitin birden fazla örneği varsa aynı kitin yeni örneklerini oluşturmak için bu komutu tekrarlayabilirsiniz. Ayrıca, tek bir kit örneğini farklı yapılandırmalara sahip iki farklı Firebase projesine (ör. hazırlık projesi ve üretim projesi) dağıtabilirsiniz. Bu gelişmiş kurulumlar hakkında daha fazla bilgi edinmek için Gelişmiş taşıma işlemleri başlıklı makaleyi inceleyin.
Örnek:
firebase functions:kits:install --template migration --no-configure --package @firebase-function-kits/firestore-bigquery-export --project my-project
3. İşlev kiti örneğini uzantıyla aynı şekilde yapılandırın.
Bu kit örneğini, değiştirdiği uzantıyla aynı yapılandırmayla özelleştirmeniz gerekir. Uzantı örneği yapılandırmanızı bir .env dosyasına aktarabilirsiniz. Bu dosya, kitler de dahil olmak üzere tüm Cloud Functions için parametre, ortam değişkeni ve gizli referans yapılandırma verilerini depolar. Doğrudan kitinizin yapılandırma dosyasına aktarmak için şu komutu çalıştırın:
firebase ext:export --mode functions --instance <extension-instance-id> --kit-instance <kit-instance-id> --project <project-id>
Bu adımın sonunda, bu örneğin yapılandırma bilgileri, örnek yapılandırma dizininizdeki projeye özel bir .env dosyasında depolanır. Örneğin:
function-kits/<kit-name>/config-<instance-id>/.env.<project-id>
4. Değişim kitini dağıtma ve doğrulama
Kiti yükleyip işlev grubu olarak kullanılabilir hale getirdikten sonra kit değişimini dağıtabilirsiniz. İşlev kitleri, standart işlevler gibi çalışır. Her kit örneği, işlevlerinizi düzenlemek için ayrı bir kod tabanı görevi görür. Tüm işlevlerinizi veya yalnızca belirli bir kit örneğini dağıtmayı seçebilirsiniz. Tek bir uzantı örneğini taşırken yalnızca o kit örneğini dağıtın.
Kitiniz, taşıma işlemini gerçekleştirdiğiniz uzantı örneğinde bulunmayan yeni parametreler kullanıyorsa Firebase CLI, dağıtım sürecinin başında bu parametreleri girmenizi ister. Güncel bir firestore-bigquery-export uzantısından alınan bu örnekte bu durum beklenmez ancak birçok kit, kit tarafından kullanılan tüm etkinlik tetikleyici kaynakları için yeni bir parametre ister. Bu taşıma işlemi kapsamında, güncellenen kitler daha önce 1. nesil işlevleri kullanan uzantılarda 2. nesil işlevleri kullanır. 2. nesilde işlevler, etkinlik kaynaklarının yakınında bulunur ve ek parametre olarak eklenir. Gelecekteki güncellemelerde yeni parametreler eklenirse CLI, bir sonraki dağıtımda sizi uyarır.
Örnek:
firebase deploy --only functions:firestore-bigquery-export --project my-project
Çıkış:
=== 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!
Kitin firebase deploy işleminde hata olmadığını doğrulamak için dağıtım günlüklerini kontrol ederek yaşam döngüsü kancalarının tetiklenip tetiklenmediğine bakın. Stream Cloud Firestore to BigQuery gibi popüler uzantılar, yaşam döngüsü kancalarını kullanır. Aşağıda, tetiklenen bir yaşam döngüsü kancasının nasıl göründüğüne dair bir örnek verilmiştir:
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
Bu günlük mesajları aşağıdakileri doğrular:
- Bir yaşam döngüsü kancası bulundu ve yürütüldü.
- Yaşam döngüsü kancasının ilişkili görev sırasında bir görev sıraya alındı.
- Görevin hatasız tamamlandığını doğrulayabilmeniz için Cloud Logging bağlantısı sağlandı.
Günlüklerde hata olmadığını ve görev sırası etkinliğinizin başarıyla işlendiğini doğrulamak için günlük bağlantısını takip ederek Google Cloud konsoluna gidin. Yaşam döngüsü olayı başarıyla yürütülmediyse şu komutu çalıştırarak yeniden tetikleyebilirsiniz:
firebase functions:lifecycle:run <hook-name> <codebase>
Bir işlev kiti örneğini ilk kez dağıtıyorsanız şunu çalıştırın:
firebase functions:lifecycle:run afterFirstDeploy <kit-instance-id>
Doğrulama sırasında herhangi bir zamanda bu taşıma işlemini durdurmak veya geri almak isterseniz Uzantıyı kaldırma bölümündeki talimatları uygulayarak kiti kaldırabilirsiniz.
İşlev kitinizin ilk dağıtımının başarıyla tamamlandığını doğruladıktan sonra kitin işlevinin gerçekten beklendiği gibi çalıştığını doğrulamanız gerekir. Uzantı çalışmaya devam ettiği için, kontrol ettiğiniz şeyin yalnızca ikisinden birinin çalışıp çalışmadığı olmadığından emin olmanız gerekir. Çünkü uzantı çalışmaya devam edecektir.
İşleme değiştirilmezse ve uzantı ile kitin yinelenen sonuçlarını görmezseniz en iyi seçenek, kitin işlevini tetikledikten sonra kitin günlüklerini doğrudan incelemektir.
Uygulamalı Örnek: Cloud Firestore'ten BigQuery'e akış
Stream Cloud Firestore to BigQuery uzantısı, hem ham değişiklik günlüğü tablosuna (*_raw_changelog) hem de en son görünüm tablosuna (*_raw_latest) yazar. Aynı etkinlik hem kite hem de uzantıya gönderilirse yinelenenler kaldırılır. Bu nedenle, kitin çalıştığını doğrulamak için BigQuery'de satırların veya yinelenen satırların varlığını kullanamazsınız.
firebase functions:logs kullanarak Firestore koleksiyonunuza yazma işlemi yaptıktan kısa bir süre sonra işlev günlüklerini görüntüleyebilir ve yazma işleminin başarıyla tamamlandığını gösteren bir günlük girişi olup olmadığını kontrol edebilirsiniz. Varsayılan örnek kimliği firestore-bigquery-export olan bu kit için
şu şekilde görünür:
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
Çok sayıda günlüğünüz varsa aşağıdaki komutu kullanarak belirli bir kit işlevine göre filtreleme yapabilirsiniz:
firebase functions:log --only <function name>
Bir kit örneğinin belirli işlev adlarını bulmak için aşağıdaki komutu kullanabilirsiniz:
firebase functions:list | grep kit-<kit instance id>
Bu örnekte:
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. Uzantıyı kaldırma
Dağıtılan işlev kitinizi doğruladıktan sonra, uzantınızı kaldırabilirsiniz. Böylece, uzantının davranışını bir kez kit için, bir kez de uzantı için kopyalamamış olursunuz. --immediate işaretini iletirseniz nasıl yüklediğinizden bağımsız olarak tüm uzantıları Firebase CLI'dan kaldırabilirsiniz:
firebase ext:uninstall <extension-instance-id> --project <project-id> --immediate
Örnek:
firebase ext:uninstall firestore-bigquery-export --project my-project --immediate
Çıkış:
i extensions: uninstalling firestore-bigquery-export...
i extensions: deleting extension instance resources in project my-project...
✔ extensions: successfully uninstalled firestore-bigquery-export
Gelişmiş taşıma işlemleri
Tek bir kod tabanıyla yönetmek istediğiniz birden fazla Firebase projesinde uzantılarınız olabilir. Örneğin, aynı altyapıyı bir testing ortamına ve bir production ortamına dağıtırsanız ve her birinde BigQuery hizmetine aktardığınız bir documents Cloud Firestore örneği varsa firestore-bigquery-export uzantısının iki örneği yüklü olabilir:
export-documents-testingexport-documents-production
Firebase CLI ile çalışırken bu iki uzantı örneğini tek bir kod tabanındaki iki işlev kiti örneğine taşıdıysanız ve firebase deploy --project testing ile firebase deploy --project production kullanarak dağıttıysanız her dağıtım hem testing hem de production ortamlarında iki örnek oluşturur.
Bunun yerine, iki uzantı örneğini birden fazla projeye dağıtılan tek bir firestore-bigquery-export işlev kiti örneğiyle değiştirin. Her projenin kendi yapılandırması vardır. Örneğin yapılandırma dizini aşağıdaki gibi görünmelidir:
config-export-documents/.env.testing.env.production
testing ve production için yapılan her dağıtım, ilgili yapılandırmayla birlikte kitinizin bir örneğini oluşturur. Mevcut CLI komutları, her ext:migrate veya functions:kits:install çağrısında --project işaretini ilettiğiniz sürece bu kurulumu oluşturur.
Örnek:
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
Artık testing ve production projelerinize ilgili yapılandırmalarıyla dağıtılacak şekilde yapılandırılmış tek bir kit örneğiniz var. testing projesinde bir örnek oluşturur ve production projesindeki aynı paket için functions:kits:install komutunu çalıştırırsanız testing için yapılandırılan örneği yeniden kullanma veya ikinci bir örnek yükleme seçeneği sunulur.