Veritabanlarını yönetme

Bu sayfada Cloud Firestore'un nasıl oluşturulacağı, güncelleneceği ve silineceği açıklanmaktadır veri tabanları. Her biri için birden fazla Cloud Firestore veritabanı oluşturabilirsiniz: belirler. Üretim ve test ayarlarını yapmak için birden fazla veritabanı kullanabilirsiniz müşteri verilerini ayırmak ve verilerin bölgeselleştirilmesini sağlamak için kullanılır.

(default) veritabanı

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

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

Ücretsiz kotayı kullanabilirsiniz. ile yalnızca (default) veritabanı ile ilişkilendirilebilir.

Gerekli roller

Veritabanları oluşturmak ve yönetmek için Owner veya Datastore Owner gerekir Identity and Access Management rolü. Bu roller, gerekli izinleri verir.

Gerekli izinler

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

  • Veritabanı oluşturun: datastore.databases.create
  • Veritabanı yapılandırmasını okuma: datastore.databases.getMetadata
  • Bir 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 Database'e git

  2. Bu ilk adlandırılmış veritabanınızsa Add database'i (Veritabanı ekle) tıklayın.
  3. Aksi halde, (varsayılan) ve Veritabanı ekle seçeneğini tıklayın.
  4. Veritabanınızı yapılandırın. Veritabanı Kimliği girin. Bir yer seçin. Veritabanı oluştur'u tıklayın.
gcloud

Şunu kullanın: 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ştirmeye yönelik isteğe bağlı bir işarettir. Silme korumasının etkin olduğu bir veritabanını yalnızca bu ayarı devre dışı bırakabilirsiniz. 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 isteğe bağlıdır bağımsız değişkenini etkinleştirin. Şu türde veritabanını silemezsiniz: siz bu ayarı devre dışı bırakana kadar silme koruması etkin olur. 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 işlemini etkinleştirmek için kullanılan isteğe bağlı bir bağımsız değişkendir ve korur. Silme koruması etkin olan bir veritabanını silemezsiniz bu ayarı devre dışı bırakıncaya kadar bekleyin. Bu ayar varsayılan olarak devre dışıdır.

Veritabanı Kimliği

Geçerli veritabanı kimlikleri, (default) ve takip etmek için:

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

Bir veritabanını sildiğinizde, veritabanı kimliğini 5 dakika geçene kadar hemen yeniden kullanamazsınız.

Korumayı sil

Bir veritabanının yanlışlıkla silinmesini önlemek için silme korumasını kullanın. Silme koruması etkinleştirilmiş bir veritabanını devre dışı bırakmadan silemezsiniz korumayı sil. Silme koruması varsayılan olarak devre dışıdır. Etkinleştirebileceğiniz korumayı silmeyi seçebilir veya veritabanı yapılandırmasını silme korumasını etkinleştirin.

Veritabanlarınız için Cloud Firestore Güvenlik Kurallarını ayarlama

Firebase CLI kullanarak her bir ürününüze Cloud Firestore Güvenlik Kurallarını dağıtın veri tabanları. Cloud Firestore Güvenlik Kurallarını yönetme ve dağıtma kılavuzuna bakın.

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

Adlandırılmış veritabanında (default) adında olmayan veritabanları bulunur. Varsayılan olarak Firebase SDK'ları ve Google API İstemci Kitaplıkları (default) ile bağlantı kurar Bir projedeki Cloud Firestore veritabanı. Bağlı bir istemci oluşturmak için bir 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 Platform Console'da Veritabanları sayfasına gidin.

Veritabanlarına git

gcloud

Şunu kullanın: 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öster

Tek bir veritabanıyla 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 değerini bir veritabanı kimliğiyle değiştirin.

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

Bir veritabanının 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 birlikte kullanabilirsiniz. Örneğin:

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

DATABASE_ID değerini bir veritabanı kimliğiyle değiştirin.

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

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

DATABASE_ID değerini bir veritabanı kimliğiyle değiştirin.

Veritabanı silme

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

Veritabanında silme koruması ayarı etkinse Öncelikle silme korumasını devre dışı bırakın.

Veritabanı App Engine arama verileri içeriyorsa veya blob varlıklarını kullanarak önce bu verileri silmelisiniz.

Veritabanının silinmesi, hiçbir veri tabanını otomatik olarak silmez. Bu veritabanı için Eventarc tetikleyicileri. İlgili içeriği oluşturmak için kullanılan tetikleyici etkinlikleri yayınlamayı durdurur ancak siz gerçekleşene kadar var olmaya devam eder tetikleyiciyi silin.

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

    Firestore Database'e git

  2. Veri sekmesinde, veritabanına ait veri tablosu görünümünün üst tarafındaki , ardından seçin Veritabanını silin.
  3. Veritabanını silme talimatlarını uygulayın.
gcloud

Şunu kullanın: `gcloud firestore Database delete` komutunun bir örneği.

gcloud firestore databases delete --database=DATABASE_ID

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

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

Tekliflerinizi otomatikleştirmek ve optimize etmek için Identity and Access Management Koşulları yapılandırabilirsiniz. Aşağıdaki örneklerde, uygulamanıza koşullu erişim atamak için Google Cloud KSA kullanılmaktadır. veya daha fazla veritabanı oluşturabilirsiniz. Ayrıca transkriptinizi IAM koşullarını GCP Console'da tanımlayın.

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

gcloud projects get-iam-policy PROJECT_ID

PROJECT_ID öğesini proje kimliğinize 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 adresidir. Örneğin, alice@example.com.
  • DATABASE_ID: veritabanı kimliği.
  • TITLE: İfade için isteğe bağlı bir başlık.
  • DESCRIPTION: ifadenin isteğe bağlı bir açıklamasıdır.

Bir veritabanı hariç tümüne erişim izni ver

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 adresidir. Örneğin, alice@example.com.
  • DATABASE_ID: veritabanı kimliği.
  • TITLE: İfade için isteğe bağlı bir başlık.
  • DESCRIPTION: ifadenin isteğe bağlı bir açıklamasıdır.

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 adresidir. Örneğin, alice@example.com.

Cloud Monitoring

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

firestore.googleapis.com/Database adresinden 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ını istemek için destek ekibiyle iletişime geçebilirsiniz.
  • GAE arama verileri içeriyorsa (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ı silebilmeniz için bir bekleme süresi gerekebilir.
  • Blob varlıkları içeriyorsa (default) veritabanınızı silemezsiniz. Blobstore verilerini silmek için lütfen Blobstore delete api'yi kullanın. Aşağıdaki GQL sorgusunu çalıştırarak (default) veritabanınızda Blobstore verileri olup olmadığını kontrol edebilirsiniz. Google Cloud Platform Console'da: SELECT * FROM __BlobInfo__.
  • Silme işleminin üzerinden 5 dakika geçene kadar veritabanı kimliğini yeniden kullanamazsınız.
  • Cloud Function v1, Firestore Adlandırılmış veritabanlarını desteklemez. Adlandırılmış veritabanlarıyla ilgili etkinlikleri yapılandırmak için lütfen Cloud Firestore Tetikleyicilerini (2. Nesil) kullanın.
  • Aynı adla yeni bir veritabanı oluşturulmuş olsa bile, veritabanı silindikten sonra Firestore işlevi tetikleyicileri v1 ve Firestore etkinlik tetikleyicileri çalışmayı durdurabilir.

Sırada ne var?