| Yalnızca Cloud Firestore Enterprise sürümü için geçerlidir. |
Bu sayfada, MongoDB uyumlu 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 yalıtmak ve verileri bölgeselleştirmek için birden fazla veritabanı kullanabilirsiniz.
Ücretsiz katman kullanımı
Cloud Firestore, ücretsiz olarak kullanmaya başlayabileceğiniz bir ücretsiz katman sunar.
Ücretsiz katman, proje başına yalnızca bir Cloud Firestore veritabanı için geçerlidir. Ücretsiz katman veritabanı olmayan bir projede oluşturulan ilk veritabanı ücretsiz katmanı alır. Ücretsiz katmanın uygulandığı veritabanı silinirse oluşturulan bir sonraki veritabanına ücretsiz katman uygulanır.
Başlamadan önce
Veritabanı oluşturmadan önce aşağıdaki işlemleri tamamlamanız gerekir:
-
Henüz yapmadıysanız bir Firebase projesi oluşturun: Firebase konsolunda Proje ekle'yi tıklayın, ardından Firebase projesi oluşturmak veya Firebase hizmetlerini mevcut bir Google Cloud projesine eklemek için ekrandaki talimatları uygulayın.
- Bir sonraki bölümde açıklandığı gibi uygun kimlik ve erişim yönetimi rollerini atayın.
Gerekli roller
Veritabanı oluşturmak ve yönetmek için Owner veya Datastore Owner
Identity and Access Management rolüne ihtiyacınız vardır. Bu roller, gerekli izinleri verir.
Gerekli izinler
Veritabanlarını yönetmek için aşağıdaki izinlere sahip olmanız gerekir:
- Veritabanı oluşturma:
datastore.databases.create - Veritabanı yapılandırmasını okuma:
datastore.databases.getMetadata - Veritabanı yapılandırma:
datastore.databases.update - Veritabanını silme:
datastore.databases.delete - Veritabanı klonlama:
datastore.databases.clone
Veritabanı oluşturun
MongoDB uyumlu bir Cloud Firestore veritabanı oluşturmak için aşağıdaki yöntemlerden birini kullanın:
Firebase konsolu
-
Firebase konsolunda Firestore Database sayfasına gidin.
- Veritabanı oluştur'u tıklayın.
- Enterprise sürümü'nü seçin. Next'i (Sonraki) tıklayın.
- Bir veritabanı kimliği girin.
- Veritabanınız için bir konum seçin.
- Bir mod seçtiğiniz veritabanınızı yapılandırın.
- Oluştur'u tıklayın.
Firebase CLI
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
gcloud CLI
gcloud firestore databases create komutunu kullanarak --edition=enterprise değerini ayarlayın.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
Aşağıdakini değiştirin:
- DATABASE_ID: Geçerli bir veritabanı kimliği.
- LOCATION: MongoDB uyumlu Cloud Firestore çok bölgeli veya bölgesel örneğinin adı.
Silme korumasını etkinleştirmek için --delete-protection işaretini ekleyin.
Silme koruması etkinleştirilmiş bir veritabanını bu ayarı devre dışı bırakana kadar silemezsiniz. Bu ayar varsayılan olarak devre dışıdır.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Veritabanına etiket eklemek için --tags işaretini kullanın. Örneğin:
--tags=123/environment=production,123/costCenter=marketing--tags=tagKeys/333=tagValues/444
Terraform
google_firestore_database kaynağını kullanın ve database_edition değerini ENTERPRISE olarak ayarlayın.
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
Aşağıdakini değiştirin:
- DATABASE_ID: Geçerli bir veritabanı kimliği.
- LOCATION: MongoDB uyumlu Cloud Firestore çok bölgeli veya bölgesel örneğinin adı.
- DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLEDveyaDELETE_PROTECTION_DISABLED.
Silme korumasını etkinleştirmek için delete_protection_state seçeneğini DELETE_PROTECTION_ENABLED olarak ayarlayın.
Silme koruması etkinleştirilmiş bir veritabanını bu ayarı devre dışı bırakana kadar silemezsiniz. Bu ayar varsayılan olarak devre dışıdır.
Veritabanı kimliği
Geçerli veritabanı kimlikleri, aşağıdakilere uygun kimlikleri içerir:
- Yalnızca harf, rakam ve kısa çizgi (
-) karakterlerini içerir. - Harfler küçük olmalıdır.
- İlk karakter harf olmalıdır.
- Son karakter harf veya rakam olmalıdır.
- En az 4 karakter olmalıdır.
- Maksimum 63 karakterdir.
- UUID olmamalı veya UUID'ye benzememelidir. Örneğin,
f47ac10b-58cc-0372-8567-0e02b2c3d479gibi bir kimlik kullanmayın.
Bir veritabanını silerseniz 5 dakika geçene kadar veritabanı kimliğini hemen yeniden kullanamazsınız.
Korumayı silme
Veritabanının yanlışlıkla silinmesini önlemek için silme korumasını kullanın. Silme koruması şu şekilde çalışır:
- Silme koruması etkinleştirilmiş bir veritabanını, silme korumasını devre dışı bırakana kadar silemezsiniz.
- Silme koruması varsayılan olarak devre dışıdır.
- Veritabanını oluştururken silme korumasını etkinleştirebilir veya veritabanı yapılandırmasını güncelleyerek silme korumasını etkinleştirebilirsiniz.
Veritabanlarını listeleme
Veritabanlarınızı listelemek için aşağıdaki yöntemlerden birini kullanın:
Firebase konsolu
-
Firebase konsolunda Firestore Database sayfasına gidin.
- Projenin tüm veritabanlarını görüntülemek için Cloud Firestore'u tıklayın.
gcloud CLI
Projenizdeki tüm veritabanlarını listelemek için
gcloud firestore databases list
komutunu kullanın.
gcloud firestore databases list
Veritabanı ayrıntılarını görüntüleme
Tek bir veritabanıyla ilgili ayrıntıları görüntülemek için aşağıdaki yöntemlerden birini kullanın:
Firebase konsolu
-
Firebase konsolunda Firestore Database sayfasına gidin.
- Veritabanları listesinden bir veritabanı seçin.
gcloud CLI
gcloud firestore databases describe komutunu kullanın:
gcloud firestore databases describe --database=DATABASE_ID
DATABASE_ID yerine bir veritabanı kimliği girin.
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ı değiştirmek, 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
--delete-protection işaretini içeren komutu kullanın. Örneğin:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection
DATABASE_ID yerine bir veritabanı kimliği girin.
Bir veritabanında silme korumasını devre dışı bırakmak için gcloud firestore databases update
--no-delete-protection işaretini kullanarak komutunu kullanın. Örneğin:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
DATABASE_ID yerine bir veritabanı kimliği girin.
Veritabanını silme
Veritabanını silmek için konsolu veya komut satırı aracını kullanın. Veritabanı silme işlemi için ücret alınmaz.
Veritabanında silme koruması ayarı etkinse önce silme korumasını devre dışı bırakmanız gerekir.
Firebase konsolu
-
Firebase konsolunda Firestore Database sayfasına gidin.
- Silmek istediğiniz veritabanını seçin.
- Daha fazla göster'i tıklayın.
- Veritabanını silmek için Sil'i tıklayın.
gcloud CLI
`gcloud firestore databases delete` komutunu kullanın.
gcloud firestore databases delete --database=DATABASE_ID
DATABASE_ID kısmını silinecek veritabanının kimliğiyle değiştirin.
Veritabanı klonlama
Seçilen bir zaman damgasında mevcut bir veritabanını yeni bir veritabanına klonlayabilirsiniz:
Klonlanan veritabanı, kaynak veritabanıyla aynı konumda oluşturulan yeni bir veritabanıdır.
Klon oluşturmak için Cloud Firestore, kaynak veritabanının belirli bir noktadan önceyi kurtarma (PITR) verilerini kullanır. Klonlanan veritabanı tüm verileri ve dizinleri içerir.
Varsayılan olarak, klonlanan veritabanı kaynak veritabanı ile aynı şekilde şifrelenir. Bu işlemde Google'ın varsayılan şifrelemesi veya CMEK şifrelemesi kullanılır. Farklı bir şifreleme türü belirtebilir veya CMEK şifrelemesi için farklı bir anahtar kullanabilirsiniz.
Zaman damgası bir dakikalık ayrıntı düzeyine sahiptir ve PITR penceresi tarafından tanımlanan dönemde geçmişteki bir zaman noktasını belirtir:
- PITR, veritabanınız için etkinleştirilmişse son 7 gün içindeki herhangi bir dakikayı seçebilirsiniz (veya PITR 7 günden daha kısa bir süre önce etkinleştirilmişse daha kısa bir süre seçebilirsiniz).
- PITR etkin değilse son saatteki herhangi bir dakikayı seçebilirsiniz.
- Veritabanınızın açıklamasında seçebileceğiniz en erken zaman damgasını kontrol edebilirsiniz.
Console
Google Cloud Console'da Veritabanları sayfasına gidin.
Klonlamak istediğiniz veritabanının tablo satırında Daha fazla göster'i tıklayın. Klonla'yı tıklayın. Klon oluştur iletişim kutusu gösterilir.
Klon oluştur iletişim kutusunda, veritabanını klonlamak için parametreler sağlayın:
Klona kimlik atayın alanında, yeni klonlanmış veritabanı için bir veritabanı kimliği. Bu veritabanı kimliği mevcut bir veritabanıyla ilişkilendirilmemelidir.
Şuradan klonla alanında, klonlama için kullanılacak bir zaman noktası seçin. Seçilen zaman, dakikalık ayrıntı düzeyinde bir PITR zaman damgasına karşılık gelir.
Klon oluştur'u tıklayın.
gcloud
Veritabanını klonlamak için
gcloud alpha firestore databases clone
komutunu kullanın:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Aşağıdakini değiştirin:
SOURCE_DATABASE: Klonlamak istediğiniz mevcut bir veritabanının veritabanı adı. Ad,
projects/PROJECT_ID/databases/SOURCE_DATABASE_IDbiçimini kullanıyor.PITR_TIMESTAMP: Dakika ayrıntı düzeyinde, RFC 3339 biçiminde bir PITR zaman damgası. Örneğin:
2025-06-01T10:20:00.00Zveya2025-06-01T10:30:00.00-07:00.DESTINATION_DATABASE_ID: Yeni bir klonlanmış veritabanı için veritabanı kimliği. Bu veritabanı kimliği mevcut bir veritabanıyla ilişkilendirilmemelidir.
Örnek:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'
Klonlanan veritabanının şifreleme yapılandırmasını değiştirme
Varsayılan olarak, klonlanan veritabanı kaynak veritabanıyla aynı şifreleme yapılandırmasına sahip olur. Şifreleme yapılandırmasını değiştirmek için --encryption-type bağımsız değişkenini kullanın:
- (Varsayılan)
use-source-encryption: Kaynak veritabanıyla aynı şifreleme yapılandırmasını kullanın. google-default-encryption: Google'ın varsayılan şifrelemesini kullanın.customer-managed-encryption: CMEK şifrelemesini kullanın.--kms-key-namebağımsız değişkeninde bir anahtar kimliği belirtin.
Aşağıdaki örnekte, klonlanan veritabanı için CMEK şifrelemesinin nasıl yapılandırılacağı gösterilmektedir:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
Veritabanı başına erişim izinlerini yapılandırma
Veritabanı düzeyinde erişim izinlerini 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 CLI kullanılır. Ayrıca Google Cloud Console'da IAM koşulları da tanımlayabilirsiniz.
Mevcut IAM politikalarını görüntüleme
gcloud projects get-iam-policy PROJECT_ID
PROJECT_ID yerine proje kimliğinizi yazı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ğinizEMAIL: Belirli bir hesabı 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ı hariç tüm veritabanları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ğinizEMAIL: Belirli bir hesabı 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ğinizEMAIL: Belirli bir hesabı temsil eden e-posta adresi. Örneğin,alice@example.com.
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.
Sırada ne var?
- Hızlı Başlangıç: Veritabanı oluşturma ve veritabanına bağlanma başlıklı hızlı başlangıç kılavuzunu uygulayın.
- Davranış farklılıkları hakkında bilgi edinin.
- Cloud Monitoring MongoDB uyumlu Cloud Firestore metrikleri hakkında bilgi edinin.