Data Connect için Firebase CLI komut referansı

Firebase CLI, Firebase ürünlerini ve hizmetlerini komut satırından yönetip yapılandırmanıza olanak tanıyan bir araçtır.

CLI, çeşitli Data Connect görevleri gerçekleştirmek için kullanılabilecek komutlar sağlar. Örneğin, yeni bir Data Connect proje oluşturma, karşılık gelen yerel çalışma dizinini başlatma, Data Connect emülatörünü ayarlama, Data Connect kaynaklarını listeleme, istemci SDK'ları oluşturma gibi.

Kurulum komutları

Data Connect uygulamasını bir Firebase projesine ekleme

firebase init

Yeni bir yerel proje yapılandırması oluşturmak için firebase init kullanın. Bu iş akışı, dizininizde Firebase yapılandırma dosyaları oluşturur veya günceller.

firebase init

firebase init akışı, hizmet ve veritabanı oluşturma, isteğe bağlı olarak Data Connect emülatörünü yükleme ve oluşturulan SDK'ları yapılandırma konusunda size yol gösterir.

Hizmet ve veritabanı kurulumu

Ürün kurulumu için dataconnect seçeneğini belirlerseniz CLI, yeni bir hizmet adı ve konumu ile mevcut bir Cloud SQL for PostgreSQL örneğini bağlayıp bağlamayacağınızı veya yeni bir örnek oluşturup oluşturmayacağınızı sorar.

Mevcut bir örnek bağlanırsa CLI, IAM kimlik doğrulaması ve herkese açık IP adresleri gibi uyumlu ayarları kontrol eder.

Local Emulator Suite kurulumu

CLI akışı, Data Connect emülatörü de dahil olmak üzere emülatörleri ayarlamayı teklif eder.

Data Connect emülatör komutları

Data Connect emülatörünü başlatın.

emulators:start/exec

firebase emulators:start/exec

Local Emulator Suite sürümünü start ile etkileşimli modda veya exec ile komut dosyası odaklı, etkileşimli olmayan modda kullanın.Data Connect

Yerel PostgreSQL verilerini dışa ve içe aktarma

Yerel prototip oluşturma, test etme ve sürekli entegrasyonu desteklemek için yerel veritabanı örneğinde depolanan verileri dışa aktarabilir, geliştirme yinelemeleri ve test çalıştırmaları arasında içe aktarabilirsiniz.

Dışa aktarılan veriler, yerel PostgreSQL veritabanınızın anlık görüntüleri olarak saklanır.

Data Connect, dışa/içe aktarma için üç yaklaşım sunar:

  • firebase.json içinde, emülatör kapatıldığında ve başlatıldığında anlık görüntü yedekleri sağlamak için otomatik dışa/içe aktarma yapılandırılır.
  • KSA'yı kullanarak manuel olarak dışa/içe aktarma
  • VS Code uzantı arayüzünü kullanarak manuel dışa/içe aktarma

firebase.json hesabınızda yapılandırılan otomatik dışa ve içe aktarma

Geliştirme oturumları arasında verileri yedeklemek için firebase init dizisi sırasında otomatik yedekleme konumu belirtin. Bu konum, firebase.json alanındaki emulators.dataconnect.dataDir bölümüne kaydedilir. Yaptığınız tüm veri değişiklikleri, emülatör çalıştırmaları arasında otomatik olarak buraya kaydedilir. Bu nedenle, yerel test ve keşif sırasında kullanışlıdır.

Manuel dışa aktarma: emulators:export ve emulators:start/exec --import

Data Connect emülatörü çalışırken ayrı bir terminalde firebase emulators:export komutunu çalıştırarak verilerinizin anlık görüntüsünü kaydedin. Ardından, --import işaretini kullanarak emülatörü bu anlık görüntüden başlatabilirsiniz.

# Export data from local emulator from a separate terminal
firebase emulators:export --only dataconnect <export_directory>

# Import data from local directory, here using emulators:exec
firebase emulators:exec ./<your-test-script>.sh --only dataconnect --import <import_directory>

Manuel dışa/içe aktarma: VS Code uzantısı

VS Code uzantısı kullanıcı arayüzünde, emülatör çalışırken Emülatör verilerini dışa aktar düğmesini kullanarak verileri dışa aktarın. Bu işlem, mevcut veritabanı içeriklerini dışa aktarır. Varsayılan dışa aktarma konumu, proje dizininizin kökündeki exportedData dizinidir.

Bu verileri, önceki bölümde açıklandığı gibi KSA'yı kullanarak içe aktarabilirsiniz. Ayrıca, VS Code üzerinden emülatörü başlatmadan önce Configure emulator (Emülatörü yapılandır) bağlantısını tıklayıp Import Path (İçe aktarma yolu) ayarını yaparak bu verileri içe aktarabilirsiniz.

Şema ve bağlayıcı yönetimi komutları

Bu bölümde, şemaları ve bağlayıcıları yönetmek için kullandığınız komutlarla ilgili KSA referans bilgileri yer almaktadır.

Bu komutlarla ilgili kullanım alanları ve önerilen uygulamalar için şema ve bağlayıcı yönetimi kılavuzuna bakın.

Şemaları ve bağlayıcıları dağıtma

deploy

firebase deploy

Bu komut, firebase.json dosyasında dizine eklenen Data Connect hizmetleri için kaynakları dağıtır. Gerekirse şema taşıma ve bağlayıcı güncelleme işlemleri yapılır.

Command Açıklama

firebase deploy

İşaret Açıklama

--only dataconnect

Bu proje için tüm Veri Bağlantısı hizmetlerinin şemalarını ve bağlayıcılarını dağıtın ancak diğer Firebase ürün kaynaklarını dağıtmayın.

--only dataconnect:serviceId

Belirtilen Data Connect hizmeti için şemayı ve bağlayıcıları dağıtın.

--only dataconnect:serviceId:connectorId

Belirtilen Data Connect hizmeti için tek bir bağlayıcı dağıtın.

--only dataconnect:serviceId:schema

Belirtilen Data Connect hizmeti için şemayı dağıtın.

–-only işaretleriyle, istediğiniz kaynakların herhangi bir alt kümesini dağıtmak için virgülle ayrılmış değerler iletebilirsiniz.

firebase deploy --only dataconnect:service1:schema,dataconnect:service2

Data Connect hizmetlerini, şemalarını ve bağlayıcılarını listeleme

dataconnect:services:list

firebase dataconnect:services:list

Bu komut, bir projede dağıtılan hizmetler, şemalar ve bağlayıcılar hakkında temel bilgileri yazdırır.

SQL şemalarını karşılaştırma ve taşıma

firebase deploy komutunu çalıştırdığınızda KSA, güncellemeleri dağıtmadan önce bir SQL şeması karşılaştırması yapar. Karşılaştırmayı yapıp güncellemeyi doğrudan bir dizi dataconnect:sql komutla da gerçekleştirebilirsiniz.

dataconnect:sql:diff

firebase dataconnect:sql:diff

Bu komut, bir hizmetin yerel şemasını ilgili Cloud SQL veritabanının mevcut şemasıyla karşılaştırır. Veritabanını yeni şemanıza taşımak için çalıştırılacak komutları yazdırır.

Command Açıklama

firebase dataconnect:sql:diff

İşaret/Parametre Açıklama

serviceId

Hizmeti belirtin. Atlanırsa firebase.json dosyasındaki tüm hizmetlerin farkını yazdırır.

dataconnect:sql:migrate

firebase dataconnect:sql:migrate

Bu komut, yerel şema değişikliklerini bir hizmetin Cloud SQL veritabanına uygular.

Yeni bir yerel Data Connect projesi oluşturduğunuzda, varsayılan dataconnect.yaml dosyasıyla birlikte dataconnect:sql:migrate komutunun davranışı, gerekli değişiklikler için ve ardından değişiklikleri yürütmeden önce isteğe bağlı değişiklikler için sizden bilgi istemektir. Şemayı katı veya uyumlu modda taşıma başlıklı makalede açıklandığı gibi, dataconnect.yaml yapılandırmanızı güncelleyerek bu davranışı her zaman isteğe bağlı değişiklikleri içerecek veya yoksayacak şekilde değiştirebilirsiniz.

CLI, etkileşimli ortamlarda her taşıma SQL ifadesini (ve bunun yıkıcı olup olmadığını) gösterir ve uygulamak istediğiniz değişiklikleri ister. --force işaretini iletmek, tüm istemleri kabul etmeye eşdeğerdir.

Etkileşimli olmayan ortamlarda:

  • --force olmadan yalnızca tahrip edici olmayan değişiklikler yapılır. Yıkıcı değişiklikler varsa CLI, değişiklik yapılmadan işlemi durdurur.
  • --force ile tüm değişiklikler yapılır. Bu, yıkıcı değişiklikleri içeriyorsa --force işareti sağlanmadığı sürece bu değişiklikler yazdırılır ve devam etmek isteyip istemediğiniz sorulur.
Command Açıklama

firebase dataconnect:sql:migrate

İşaret Açıklama

serviceId

Belirtilen hizmet için veritabanını taşıyın. Projenizde yalnızca bir hizmet varsa serviceId çıkarılır.

--force

İstemleri otomatik olarak kabul etme

Diğer --only işaretlerinde olduğu gibi, virgülle ayrılmış birden fazla hizmet sağlayabilirsiniz.

Şemayı katı veya uyumlu modda taşıma

Data Connect şema taşımalarında iki farklı şema doğrulama modu vardır: strict (katı) ve compatible (uyumlu). Katı mod doğrulama, uygulama şemasının dağıtılabilmesi için veritabanı şemasının uygulama şemasıyla tam olarak eşleşmesini gerektirir. Uyumlu mod doğrulamasında, veritabanı şemasının uygulama şemasıyla uyumlu olması gerekir. Bu, veritabanınızdaki uygulama şemanız tarafından kullanılmayan öğelerin değiştirilmeden bırakılması anlamına gelir.

Şema doğrulama modları ve şema taşıma ile ilgili en iyi uygulamalar Şema ve bağlayıcı yönetimi kılavuzu'nda açıklanmıştır.

Doğrulama modu, dataconnect.yaml dosyanızdaki schemaValidation anahtarı kullanılarak tanımlanır. schemaValidation belirtilmemişse CLI, uyumlu değişiklikleri uygular ve katı değişiklikleri yürütmeden önce size sorar. Yapılandırma referansı bölümüne bakın.

Bağlayıcılarda yapılan değişiklikleri yönetme

firebase deploy komutunu çalıştırdığınızda KSA, geçerli bağlayıcıların güncellenmesini başlatır. CLI, her bağlayıcıdaki değişiklikleri analiz eder ve istemci kodunun önceki sürümlerinde beklenmedik davranışlara (uyarı düzeyinde mesajlar) veya bozulmalara (bozulma düzeyinde mesajlar) neden olabilecek bağlayıcı değişiklikleriyle ilgili bir dizi değerlendirme mesajı yayınlar.

Etki değerlendirmesi Senaryo
Uyarı seviyesi (kablolu uyumlu, davranışı değiştirebilir)
  • Boş değer atanabilir bir alanı, @retired ek açıklaması olmayan bir sorgudan kaldırma.
Bozucu düzey (kablolar uyumsuz, istemcileri bozabilir)
  • Boş değer atanabilir bir değişkeni varsayılan değer olmadan boş değer atanabilir olmayan bir değişkene değiştirme.
  • Bir alanın veri türünü JSON ile uyumlu olacak şekilde değiştirme (ör. Int ile Float).
  • Boş olmayan bir sütunu boş atanabilir olarak değiştirme.
  • @retired ek açıklaması olmayan, boş değer atanabilir bir değişkeni kaldırma.
  • Varsayılan değeri olan ve @retired açıklaması içermeyen bir null olmayan değişkeni kaldırma.
Bozulma düzeyinde (kablo uyumsuz, istemciler bozulacak)
  • @retired ek açıklaması olmayan bir işlemi kaldırma.
  • Boş olmayan bir alanı @retired ek açıklaması olmayan bir sorgudan kaldırma.
  • Varsayılan değeri olmayan boş olmayan bir değişken ekleme.
  • Bir alanın veri türünü uyumsuz bir türle (ör. String ile Int) değiştirme.
  • Varsayılan değeri ve @retired açıklaması olmayan, boş olmayan bir değişkenin kaldırılması.

CLI, etkileşimli ortamlarda her bağlayıcı değerlendirmesini gösterir ve uygulamak istediğiniz değişiklikleri ister. --force işaretini iletmek, tüm değerlendirmeleri kabul etmeye eşdeğerdir.

Etkileşimli olmayan ortamlarda:

  • Yalnızca uyarı düzeyinde değerlendirmeler (olası davranış değişiklikleri) gerçekleşirse tüm bağlayıcılar dağıtılır ve uyarılar terminale kaydedilir.
  • Herhangi bir kesme düzeyinde değerlendirme gerçekleşirse bağlayıcılar dağıtılmaz ve uyarılar terminale kaydedilir. --force işaretiyle geçersiz kılabilirsiniz.

Denetim yetkilendirme kodu

Data Connect, Firebase CLI'dan firebase deploy kullanarak sunucuya dağıtım yaptığınızda bağlayıcı kodunuzu analiz ederek yetkilendirme stratejinizi denetlemenize yardımcı olur. Kod tabanınızı incelemek için bu denetimden yararlanabilirsiniz.

Bağlayıcılarınızı dağıttığınızda KSA, bağlayıcınızdaki mevcut, değiştirilmiş ve yeni işlem kodu için değerlendirmeler oluşturur.

Değiştirilen ve yeni işlemler için CLI, yeni işlemlerinizde belirli erişim düzeylerini kullandığınızda veya mevcut işlemleri bu erişim düzeylerini kullanacak şekilde değiştirdiğinizde uyarılar yayınlar ve onayınızı ister.

Uyarılar ve istemler her zaman şu durumlarda gösterilir:

  • PUBLIC

Ayrıca, auth.uid kullanarak filtrelerle artırmadığınızda aşağıdaki erişim düzeylerinde uyarılar ve istemler gösterilir:

  • USER
  • USER_ANON
  • USER_EMAIL_VERIFIED

Yetkilendirme hakkında daha fazla bilgi için yetkilendirme ve onay kılavuzuna bakın.

SDK komutları

SDK oluşturma

dataconnect:sdk:generate

firebase dataconnect:sdk:generate

Bu komut, connector.yaml dosyasında belirtilen türü belirlenmiş SDK'ları oluşturur.

Ayrıca web SDK'ları, Android SDK'ları ve iOS SDK'ları ile çalışma kılavuzlarına da göz atın.

Command Açıklama

firebase dataconnect:sdk:generate

İşaret Açıklama

–-watch

İşlemin devam etmesini sağlar ve şemanızda ve bağlayıcı GQL dosyalarınızda değişiklikleri her kaydettiğinizde yeni SDK'lar oluşturur.

Oluşturma işlemi başarısız olursa hatalar stdout'a yazdırılır, oluşturulan kod değiştirilmez ve komut çalışmaya devam eder.

--only connectorId:platform

Yalnızca tek bir platform ve tek bir bağlayıcı için SDK oluşturun.

–only işaretleriyle virgülle ayrılmış değerler iletebilirsiniz.

firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin

Cloud SQL yönetim komutları

Cloud SQL için SQL rolleri verme

Data Connect, Cloud SQL'de barındırılan kendi PostgreSQL örneğinizin üzerinde çalışır. SQL rolü komutları, veritabanı tablolarınızdaki izinleri yönetmenize yardımcı olur.

dataconnect:sql:setup

firebase dataconnect:sql:setup

Bu komut, veritabanınızdaki tablolara ilk ve genel izinleri yapılandırır.

Varsayılan veritabanı sağlama ve yönetim akışı, projenizin yeni (yeşil alan) bir veritabanı kullandığını varsayar. firebase deploy komutunu çağırdığınızda Data Connect, yapılacak veritabanı şeması değişikliklerini gösterir ve onayınızdan sonra tüm taşımaları gerçekleştirir. Tercih ettiğiniz akış buysa dataconnect:sql:setup, superuser şema sahiplikleri de dahil olmak üzere izin vermenizi ister.

Mevcut (brownfield) veritabanları için şemaları taşıma konusunda kendi iş akışınız olabilir ve şema sahipliğini kendiniz korumak isteyebilirsiniz. Bu akışı tercih ediyorsanız dataconnect:sql:setup Data Connect'ın SQL taşıma işlemlerini sizin için yapıp yapmamasıyla ilgili istemde reddet'i seçtiğinizden emin olun. Reddetme sonucunda Data Connect, yalnızca read ve write veritabanı tablolarınıza erişebilir. Ancak şema sahipliği ve taşıma işlemleri sizin sorumluluğunuzda kalır.

Daha fazla tartışma ve kullanım alanı için Hizmetleri ve veritabanlarını yönetme başlıklı makaleye bakın.

dataconnect:sql:grant

firebase dataconnect:sql:grant

Bazı durumlarda, Data Connect uygulamalarınız tarafından oluşturulan verileri sorgulamak veya güncellemek için doğrudan veritabanınıza erişmek isteyebilirsiniz. Bunu yapmak için bu bölümde tanımlanan rollerden birini gerekli kullanıcıya veya hizmet hesabına vermeniz gerekir.

Verilen rollerle ilgili ayrıntılar için PostgreSQL kullanıcı rolleri başlıklı makaleyi inceleyin.

Rol SQL Rolü İzinler Kullanım Verilebilir
okuyucu firebasereader_<db_name>_<schema_name> Veritabanına salt okuma erişimi.

Belirtilen şemadaki tüm tablolarda SELECT işlemlerini gerçekleştirebilir.
Veri alımı gerektiren ancak değiştirme gerektirmeyen kullanıcılar veya hizmetler için idealdir. Evet
yazıcı firebasewriter_<db_name>_<schema_name> Veritabanına okuma ve yazma erişimi.

Şemadaki tüm tablolarda SELECT, INSERT, UPDATE, DELETE ve TRUNCATE işlemlerini gerçekleştirebilir.
Veritabanındaki verileri değiştirmesi gereken kullanıcılar veya hizmetler için uygundur. Evet
sahibi firebaseowner_<db_name>_<schema_name> Şema sahibi.

Şemadaki tüm tablolarda ve dizilerde tüm ayrıcalıklara sahiptir.
Bu rol, IAM roles/cloudsql.client rolüyle birlikte veritabanında taşıma işlemi gerçekleştirme izni verir.

Örneğin, firebase dataconnect:sql:migrate numarası arandığında.
Evet
süper kullanıcı cloudsqlsuperuser Veritabanında tam ayrıcalıklara sahip yerleşik süper kullanıcı rolü.

Sahip izinlerine ek olarak şemalar oluşturabilir, şemaları bırakabilir, uzantıları yükleyebilir ve diğer tüm yönetim görevlerini gerçekleştirebilir.

"firebasesuperuser" olarak oturum açılarak CLI'da erişilir.
Uzantı yüklemek, ilk şemayı oluşturmak ve diğer kullanıcılara verilebilen SQL rollerini vermek için gereklidir.

Yönetici olmayan bir kullanıcının süper kullanıcı ayrıcalıklarına ihtiyacı varsa taşıma işlemi başarısız olur ve kullanıcıdan, ayrıcalıklı SQL komutlarını çalıştırması için veritabanı yöneticisinden (ör. roles/cloudsql.admin rolüne sahip bir kullanıcı) izin alması istenir.
roles/cloudsql.admin olan kullanıcılara verilir ve doğrudan Firebase CLI'dan verilemez.
Command Açıklama

firebase dataconnect:sql:grant

İşaret/Parametre Açıklama

-R, --role role

Verilecek SQL rolü (sahip, yazıcı veya okuyucu).

-E, --email e-posta_adresi

Role erişim izni verilecek kullanıcı veya hizmet hesabının e-posta adresi.

Genel seçenekler

Aşağıdaki genel seçenekler tüm komutlar için geçerlidir:

  • --json, diğer araçlar tarafından ayrıştırılmak üzere CLI çıkışını JSON'a dönüştürür.
  • --noninteractive ve --interactive, TTY olmayan ortamların otomatik olarak algılanmasını gerektiği şekilde geçersiz kılar.