Veritabanlarını yönetme

Bu sayfada, Cloud Firestore veritabanlarının nasıl oluşturulacağı, güncelleneceği ve silineceği açıklanmaktadır. Proje başına birden fazla Cloud Firestore veritabanı oluşturabilirsiniz. Üretim ve test ortamları oluşturmak, müşteri verilerini izole etmek ve verileri bölgeye göre ayırmak için birden fazla veritabanı kullanabilirsiniz.

(default) veritabanı

Uygulamanız birden fazla veritabanı gerektirmiyorsa (default) veritabanını kullanın.

Bir veritabanı belirtmezseniz Cloud Firestore istemci kitaplıkları ve Google Cloud KSA varsayılan olarak (default) veritabanına bağlanır.

Ücretsiz kotayı yalnızca (default) veritabanında kullanabilirsiniz.

Gerekli roller

Veritabanı oluşturmak ve yönetmek için Owner veya Datastore Owner Identity and Access Management rolüne sahip olmanız gerekir. Bu roller gerekli izinleri verir.

Gerekli izinler

Veritabanı yönetmek için aşağıdaki izinlere ihtiyacınız vardır:

  • Veritabanı oluşturma: datastore.databases.create
  • Veritabanı yapılandırmasını okuma: datastore.databases.getMetadata
  • Veritabanı yapılandırın: datastore.databases.update
  • Veritabanı silme: datastore.databases.delete

Veritabanı oluşturun

Veritabanı oluşturmak için aşağıdaki yöntemlerden birini kullanın:

Konsol
  1. Firebase konsolunda Firestore Veritabanı sayfasına gidin.

    Firestore veritabanına gidin

  2. Bu ilk adlandırılmış veritabanınızsa Veritabanı ekle'yi tıklayın.
  3. Aksi takdirde, (varsayılan)'ı ve ardından Veritabanı ekle'yi tıklayın.
  4. Veritabanını yapılandırın. Bir veritabanı kimliği girin. Bir yer seçin. Veritabanı oluştur'u tıklayın.
gcloud

gcloud firestore databases create komutunu kullanın.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

Aşağıdakini değiştirin:

--delete-protection, silme korumasını etkinleştirmek için isteğe bağlı bir işarettir. Silme koruması etkin olan bir veritabanını, bu ayarı devre dışı bırakmadan silemezsiniz. Bu ayar varsayılan olarak devre dışıdır.

Firebase CLI
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

Aşağıdakini değiştirin:

--delete-protection , silme korumasını etkinleştirmek için isteğe bağlı bir bağımsız değişkendir. Silme koruması etkinleştirilmiş bir veritabanını, bu ayarı devre dışı bırakmadan silemezsiniz. Bu ayar varsayılan olarak devre dışıdır.

Terraform
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

Aşağıdakini değiştirin:

delete_protection_state, silme korumasını etkinleştirmek için isteğe bağlı bir bağımsız değişkendir. Silme koruması etkin olan bir veritabanını, bu ayarı devre dışı bırakmadan silemezsiniz. Bu ayar varsayılan olarak devre dışıdır.

Veritabanı Kimliği

Geçerli veritabanı kimlikleri (default) ve aşağıdakilere uygun kimlikleri içerir:

  • Yalnızca harf, sayı ve kısa çizgi (-) karakterlerini içerir.
  • Harfler küçük yazılmalıdır.
  • İlk karakter bir harf olmalıdır.
  • Son karakter harf veya rakam olmalıdır.
  • Minimum 4 karakter.
  • Maksimum 63 karakterdir.
  • UUID olmamalı veya UUID'ye benzememelidir. Örneğin, f47ac10b-58cc-0372-8567-0e02b2c3d479 gibi bir kimlik kullanmayın.

Sildiğiniz veritabanı kimliğini 5 dakika geçmeden yeniden kullanamazsınız.

Korumayı silme

Bir veritabanının yanlışlıkla silinmesini önlemek için silme korumasını kullanın. Silme korumasını devre dışı bırakmadan silme koruması etkin olan bir veritabanını silemezsiniz. Silme koruması varsayılan olarak devre dışıdır. Silme korumasını veritabanını oluştururken etkinleştirebilir veya silme korumasını etkinleştirmek için bir veritabanı yapılandırmasını güncelleyebilirsiniz.

Veritabanlarınız için Cloud Firestore Security Rules'ü ayarlama

Cloud Firestore Security Rules'ı veritabanlarınızın her birine dağıtmak için Firebase CLI'yi kullanın. Cloud Firestore Security Rules'i yönetme ve dağıtma kılavuzunu inceleyin.

İstemci kitaplığıyla adlandırılmış bir veritabanına erişme

Adlandırılmış veritabanı, (default) olarak adlandırılmayan tüm veritabanlarını içerir. Firebase SDK'ları ve Google API istemci kitaplıkları varsayılan olarak bir projedeki (default) Cloud Firestore veritabanına bağlanır. Adlandırılmış bir veritabanına bağlı bir istemci oluşturmak için istemci örneği oluştururken veritabanı kimliğini ayarlayın.

Veritabanlarını listeleme

Veritabanlarınızı listelemek için aşağıdaki yöntemlerden birini kullanın:

Konsol

Google Cloud Console'da Veritabanları sayfasına gidin.

Veritabanları'na gidin

gcloud

Projenizdeki tüm veritabanlarını listelemek için gcloud firestore databases list komutunu kullanın.

gcloud firestore databases list
Firebase CLI

Projenizdeki tüm veritabanlarını listelemek için firebase firestore:databases:list komutunu kullanın.

firebase firestore:databases:list

Veritabanı ayrıntılarını görüntüleme

Tek bir veritabanı ile ilgili ayrıntıları görüntülemek için aşağıdaki yöntemlerden birini kullanın:

gcloud

gcloud firestore databases describe komutunu kullanın:

gcloud firestore databases describe --database=DATABASE_ID

Firebase CLI

firebase firestore:databases:get komutunu kullanın:

firebase firestore:databases:get DATABASE_ID

DATABASE_ID yerine bir veritabanı kimliği girin.

Veritabanı yapılandırmasını güncelleme

Bir veritabanındaki yapılandırma ayarlarını güncellemek için gcloud firestore databases update komutunu kullanın. Silme korumasını etkinleştirmek veya devre dışı bırakmak için bu komutu kullanın.

Silme koruması ayarını güncelleme

Bir veritabanında silme korumasını etkinleştirmek için gcloud firestore databases update komutunu --delete-protection işaretiyle kullanın. Örneğin:

gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection

DATABASE_ID yerine bir veritabanı kimliği girin.

Bir veritabanındaki silme korumasını devre dışı bırakmak için gcloud firestore databases update komutunu --no-delete-protection işaretiyle kullanın. Örneğin:

gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

DATABASE_ID yerine bir veritabanı kimliği girin.

Veritabanı silme

Bir veritabanını silmek için konsolu veya komut satırı aracını kullanın.

Veritabanında silme koruması ayarı etkinse önce silme korumasını devre dışı bırakmanız gerekir.

Veritabanı App Engine arama verileri veya blob öğeleri içeriyorsa önce bu verileri silmeniz gerekir.

Bir veritabanının silinmesi, ilgili veritabanı için Eventarc tetikleyicileri otomatik olarak silmez. Tetikleyici, etkinlik yayınlamayı durdurur ancak silnene kadar varlığını korur.

Konsol
  1. Firebase konsolunda Firestore Veritabanı sayfasına gidin.

    Firestore veritabanına gidin

  2. Veri sekmesinde, veritabanının veri tablosu görünümünün üstündeki simgesini tıklayın ve ardından Veritabanını sil'i seçin.
  3. Veritabanını silme talimatlarını uygulayın.
gcloud

`gcloud firestore databases delete` komutunu kullanın.

gcloud firestore databases delete --database=DATABASE_ID

DATABASE_ID öğesini, silinecek veritabanının kimliğiyle değiştirin.

Veritabanı başına erişim izinlerini yapılandırma

Erişim izinlerini veritabanı düzeyinde yapılandırmak için Kimlik ve Erişim Yönetimi Koşulları'nı kullanabilirsiniz. Aşağıdaki örneklerde, bir veya daha fazla veritabanı için koşullu erişim atamak üzere Google Cloud KSA kullanılmaktadır. IAM koşullarını Google Cloud Console'da da tanımlayabilirsiniz.

Mevcut IAM politikalarını görüntüleme

gcloud projects get-iam-policy PROJECT_ID

PROJECT_ID değerini proje kimliğinizle ayarlayın.

Veritabanına erişim izni verme

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

Aşağıdakileri ayarlayın:

  • PROJECT_ID: proje kimliğiniz
  • EMAIL: Belirli bir Google Hesabı'nı temsil eden e-posta adresi. Örneğin, alice@example.com.
  • DATABASE_ID: veritabanı kimliği.
  • TITLE: İfade için isteğe bağlı bir başlık.
  • DESCRIPTION: İfadenin isteğe bağlı açıklaması.

Bir veritabanı dışındaki tümüne erişim izni verme

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

Aşağıdakileri ayarlayın:

  • PROJECT_ID: proje kimliğiniz
  • EMAIL: Belirli bir Google Hesabı'nı temsil eden e-posta adresi. Örneğin, alice@example.com.
  • DATABASE_ID: veritabanı kimliği.
  • TITLE: İfade için isteğe bağlı bir başlık.
  • DESCRIPTION: İfadenin isteğe bağlı açıklaması.

Belirli bir üye ve rol için politikaları kaldırma

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

Aşağıdakileri ayarlayın:

  • PROJECT_ID: proje kimliğiniz
  • EMAIL: Belirli bir Google Hesabı'nı temsil eden e-posta adresi. Örneğin, alice@example.com.

Cloud Monitoring

Cloud Firestore metrikleri, iki izlenen kaynak altında raporlanır.

firestore.googleapis.com/Database'ye bakarak toplu metrikleri veritabanı düzeyinde inceleyebilirsiniz. firestore_instance altında raporlanan metrikler proje düzeyinde toplanır.

Sınırlamalar

  • Proje başına en fazla 100 veritabanınız olabilir. Bu sınırın artırılması için destek ekibiyle iletişime geçebilirsiniz.
  • GAE arama verileri içeren (default) veritabanınızı silemezsiniz. GAE arama verilerini silmek için lütfen index delete api'yi kullanın. GAE arama verilerini yakın zamanda sildiyseniz veritabanını silmeden önce beklemeniz gerekebilir.
  • Blob öğeleri içeren (default) veritabanınızı silemezsiniz. Blobstore verilerini silmek için lütfen Blobstore delete api'yi kullanın. Google Cloud Console'da aşağıdaki GQL sorgusunu çalıştırarak (default) veritabanınızda Blobstore verileri olup olmadığını kontrol edebilirsiniz: SELECT * FROM __BlobInfo__.
  • Silme işleminden 5 dakika sonrasına kadar veritabanı kimliğini yeniden kullanamazsınız.
  • Cloud Function v1, Firestore adlandırılmış veritabanlarını desteklemez. Adlandırılmış veritabanları için etkinlikleri yapılandırmak üzere lütfen Cloud Firestore Tetikleyicileri (2. nesil)'ni kullanın.
  • Firestore işlev tetikleyicileri v1 ve Firestore etkinlik tetikleyicileri, aynı ada sahip yeni bir veritabanı oluşturulsa bile veritabanı silindikten sonra çalışmayı durdurabilir.

Sırada ne var?