Firebase CLI, Firebase ürün ve hizmetlerini komut satırından yönetmenize ve yapılandırmanıza olanak tanıyan bir araçtır.
CLI, yeni bir Data Connect projesi oluşturma, ilgili yerel çalışma dizinini başlatma, Data Connect emülatörünü ayarlama, Data Connect kaynaklarını listeleme, istemci SDK'ları oluşturma ve daha pek çok Data Connect görevi gerçekleştirmek için kullanılabilecek komutlar sağlar.
Kurulum komutları
Data Connect uygulamasını 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çerseniz CLI'de yeni bir hizmet adı ve konumu, ayrıca PostgreSQL için mevcut bir Cloud SQL örneğini bağlayıp bağlamayacağınızı veya yeni bir örnek oluşturup oluşturmayacağınızı belirtmeniz istenir.
Mevcut bir örnek bağlıysa 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 dahil olmak üzere emülatör oluşturmayı önerir.
Data Connect emülatör komutları
Data Connect emülatörünü başlatma
emulators:start/exec
firebase emulators:start/exec
Data Connect emülatörünün Local Emulator Suite sürümünü start
ile etkileşimli modda veya exec
ile komut dosyası destekli, etkileşimli olmayan modda kullanın.
Yerel PostgreSQL verilerini dışa ve içe aktarma
Yerel prototip oluşturma ve test etme ile sürekli entegrasyonu desteklemek için yerel bir veritabanı örneğinde depolanan verileri dışa aktarabilir ve geliştirme iterasyonları ile 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:
- Emülatör kapatıldığında ve açıldığında anlık görüntü yedeklemeleri sağlamak için
firebase.json
'te yapılandırılmış otomatik dışa aktarma/içe aktarma - KSA'yı kullanarak manuel olarak dışa aktarma/içe aktarma
- VS Code uzantı arayüzü kullanılarak manuel dışa aktarma/içe aktarma
firebase.json
hesabınızda yapılandırılmış otomatik dışa aktarma ve içe aktarma
Geliştirme oturumları arasında verileri yedeklemek için firebase init
sırası sırasında otomatik bir yedekleme konumu belirtin. Bu konum, firebase.json
dosyanızdaki emulators.dataconnect.dataDir
alanında saklanır. 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 faydalı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şaretçisini 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 aktarma/içe aktarma: VS Code uzantısı
VS Code uzantısı kullanıcı arayüzünde, emülatör çalışırken geçerli veritabanı içeriğini dışa aktarmak için Emülatör verilerini dışa aktar düğmesini kullanarak verileri dışa aktarın. 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. Bu verileri, VS Code üzerinden emülatörü başlatmadan önce Emülatörü yapılandır bağlantısını tıklayıp İçe Aktarma Yolu'nu ayarlayarak da içe aktarabilirsiniz.
Şema ve bağlayıcı yönetim 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ğlantı güncellemesi yapılır.
Komut | Açıklama | |
---|---|---|
firebase deploy |
İşaret | Açıklama |
–-only dataconnect |
Bu proje için tüm Data Connect hizmetleri için şemaları ve bağlayıcıları 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 kaynak 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ı ve güncellemeyi doğrudan bir dizi dataconnect:sql
komutuyla da yapabilirsiniz.
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.
Komut | Açıklama | |
---|---|---|
firebase dataconnect:sql:diff |
İşaret/Parametre | Açıklama |
serviceId |
Hizmeti belirtin. Atlanırsa firebase.json'daki tüm hizmetler için farkları yazdırın. |
dataconnect:sql:migrate
firebase dataconnect:sql:migrate
Bu komut, yerel şema değişikliklerini bir hizmetin Cloud SQL veritabanına uygular.
Varsayılan dataconnect.yaml
dosyasıyla yeni bir yerel Data Connect projesi oluşturduğunuzda dataconnect:sql:migrate
komutunun davranışı, değişiklikleri uygulamadan önce gerekli değişiklikleri ve ardından isteğe bağlı değişiklikleri yapmanızı istemek olur. Şemi sıkı veya uyumlu modda taşıma bölümünde açıklandığı gibi, dataconnect.yaml
yapılandırmanızı güncelleyerek bu davranışı isteğe bağlı değişiklikleri her zaman dahil edecek veya yok sayacak şekilde değiştirebilirsiniz.
Etkileşimli ortamlarda CLI, her taşıma SQL ifadesini (ve yıkıcı olup olmadığını) gösterir ve uygulamak istediğiniz değişiklikleri sorar.
--force
işaretini iletmek, tüm istemleri kabul etmekle aynıdır.
Etkileşimli olmayan ortamlarda:
--force
olmadan yalnızca bozulmaya yol açmayan değişiklikler yapılır. Yıkıcı değişiklikler varsa CLI, herhangi bir değişiklik yapılmadan iptal edilir.--force
ile tüm değişiklikler yapılır. Bu işlem, bozucu değişiklikler içeriyorsa--force
işareti sağlanmadığı sürece değişiklikler yazdırılır ve devam etmek isteyip istemediğiniz sorulur.
Komut | Açıklama | |
---|---|---|
firebase dataconnect:sql:migrate |
İşaret | Açıklama |
serviceId |
Belirtilen hizmetin veritabanını taşıyın. Projenizde yalnızca bir hizmet varsa serviceId atanır. | |
–-force |
İstemleri otomatik olarak kabul etme |
Diğer --only
işaretlerinde olduğu gibi, virgüllerle ayrılmış birden fazla hizmet sağlayabilirsiniz.
Şemaları katı veya uyumlu modda taşıma
Data Connect şema taşıma işlemlerinde iki farklı şema doğrulama modu vardır: katı ve uyumlu. Katı mod doğrulaması, 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ı, veritabanı şemasının uygulama şemasıyla uyumlu olmasını gerektirir. Bu, veritabanınızdaki ve uygulama şemanız tarafından kullanılmayan öğelerin değiştirilmeden bırakıldığı anlamına gelir.
Bu şema doğrulama modları ve şema taşımayla ilgili en iyi uygulamalar şema ve bağlayıcı yönetimi kılavuzunda ele alınmıştır.
Doğrulama modu, dataconnect.yaml
dosyanızdaki schemaValidation
anahtarı kullanılarak tanımlanır. schemaValidation
belirtilmezse CLI, uyumlu değişiklikleri uygular ve katı değişiklikleri yürütmeden önce sizi uyarır. Yapılandırma referansı bölümüne bakın.
Bağlantı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 bir bağlayıcıdaki değişiklikleri analiz eder ve istemci kodunun önceki sürümlerinde beklenmedik davranışa (uyarı düzeyinde mesajlar) veya kesintilere (kesinti 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 (kabloyla uyumlu, davranışı değiştirebilir) |
|
Kesme düzeyi (bağlantı uyumsuzdur, istemcileri bozabilir) |
|
Kesinti düzeyi (bağlantı uyumsuz, istemcileri kesecektir) |
|
Etkileşimli ortamlarda CLI, 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 etmekle 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.
- Kritik düzeyde değerlendirmeler yapılırsa hiçbir bağdaştırıcılar dağıtılmaz ve uyarılar terminale kaydedilir.
--force
işaretini kullanarak geçersiz kılabilirsiniz.
Denetim yetkilendirme kodu
Data Connect, Firebase CLI'sinden firebase deploy
'ı kullanarak sunucuya dağıttığınızda bağlayıcı kodunuzu analiz ederek yetkilendirme stratejinizi denetlemenize yardımcı olur. Kod tabanınızı incelemenize yardımcı olması için bu denetimi kullanabilirsiniz.
Bağlantı noktaları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ştirilmiş 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 verir 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 onaylama kılavuzuna bakın.
SDK komutları
SDK oluşturma
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
Bu komut, connector.yaml dosyasında tanımlanan, yazılmış SDK'ları oluşturur.
Web SDK'ları, Android SDK'ları ve iOS SDK'larıyla çalışmayla ilgili kılavuzları da inceleyin.
Komut | Açıklama | |
---|---|---|
firebase dataconnect:sdk:generate |
İşaret | Açıklama |
–-watch |
Şemaya ve bağlayıcı GQL dosyalarınıza değişiklik kaydettiğinizde işlemin devam etmesini sağlar ve 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 tablolar için ilk global izinleri yapılandırır.
Varsayılan veritabanı sağlama ve yönetim akışı, projenizin yeni (boş) bir veritabanı kullandığını varsayar. firebase deploy
işlevini çağırdığınızda Data Connect, yapılacak veritabanı şeması değişikliklerini gösterir ve onaylamanızın ardından tüm taşıma işlemlerini gerçekleştirir. Tercih ettiğiniz akış buysa dataconnect:sql:setup
, superuser
şeması sahiplikleri de dahil olmak üzere izin vermenizi ister.
Mevcut (kullanılmayan) veritabanları için şema taşımayla ilgili kendi iş akışınız olabilir ve şema sahipliğini kendiniz yönetmek isteyebilirsiniz. Tercih ettiğiniz akış buysa Data Connect'ın SQL taşıma işlemlerini sizin için yapıp yapmayacağıyla ilgili dataconnect:sql:setup
isteminde reddet'i tıkladığınızdan emin olun.
Reddetme sonucunda Data Connect, veritabanı tablolarınıza yalnızca read
ve write
erişimi alacak ancak şema sahiplikleri ve taşıma işlemleri sizin sorumluluğunuzda olmaya devam edecektir.
Daha fazla bilgi ve kullanım alanı için Hizmetleri ve veritabanlarını yönetme başlıklı makaleyi inceleyin.
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şlemleri gerçekleştirebilir. |
Veri getirmeyi ancak değiştirmeyi 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ı içindeki 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 tablolar ve sıralamalar üzerinde 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 numarayı aradığınızda. |
Evet |
süper kullanıcı | cloudsqlsuperuser |
Veritabanında tam ayrıcalıklara sahip yerleşik süper kullanıcı rolü. Sahip izinlerine ek olarak şema oluşturabilir, şema bırakabilir, uzantı yükleyebilir ve diğer tüm yönetim görevlerini gerçekleştirebilir. CLI'de "firebasesuperuser" olarak giriş yapılarak erişilir. |
Uzantı yüklemek, ilk şemayı oluşturmak ve atanabilir SQL rollerinden herhangi birini diğer kullanıcılara 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 veritabanı yöneticisinden (ör. roles/cloudsql.admin kullanıcısı) ayrıcalıklı SQL komutlarını çalıştırmasını istemesi istenir. |
roles/cloudsql.admin kullanıcılarına verilir ve doğrudan Firebase CLI'den verilemez |
Komut | Açıklama | |
---|---|---|
firebase dataconnect:sql:grant |
İşaret/Parametre | Açıklama |
-R, --role rol |
Verilecek SQL rolü (sahip, yazar veya okuyucu). | |
-E, --email email_address |
Rolün verileceği kullanıcının 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 geçirir.--noninteractive
ve--interactive
, gerektiğinde TTY dışı ortamların otomatik algılamasını geçersiz kılar.