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.
(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
Veritabanı 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
-
Firebase konsolunda Firestore Veritabanı sayfasına gidin.
- Bu ilk adlandırılmış veritabanınızsa Add database'i (Veritabanı ekle) tıklayın.
- Aksi halde, (varsayılan) ve Veritabanı ekle seçeneğini tıklayın.
- Veritabanınızı yapılandırın. 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:
- DATABASE_ID: Geçerli bir veritabanı kimliği.
- LOCATION: Cloud Firestore çoklu bölgesinin veya bölge.
- DATABASE_TYPE: Yerel mod için
firestore-native
veya Datastore modu için datastore-mode.
--delete-protection
, silme korumasını etkinleştirmeye yönelik 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:
- DATABASE_ID: Geçerli bir veritabanı kimliği.
- LOCATION: bir cihazın adı Cloud Firestore çoklu bölge veya bölge.
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
veyaDISABLED
.
Oluşturulan veritabanı her zaman Firestore Yerel modundadır.
--delete-protection
, silme korumasını etkinleştirmek için isteğe bağlı bir bağımsız değişkendir. Ş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:
- DATABASE_ID: Geçerli bir veritabanı kimliği.
- LOCATION: bir cihazın adı Cloud Firestore çoklu bölge veya bölge.
- DATABASE_TYPE: Native mod için
FIRESTORE_NATIVE
veya Datastore modu içinDATASTORE_MODE
. - DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
veyaDELETE_PROTECTION_DISABLED
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ı, bu ayarı devre dışı bırakana kadar 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 (
-
) karakterleri içerir. - Harfler küçük yazılmalıdır.
- İlk karakter harf olmalıdır.
- Son karakter harf veya rakam olmalıdır.
- Minimum 4 karakter.
- Maksimum 63 karakter.
- UUID olmamalıdır veya UUID'ye benzememelidir. Örneğin,
f47ac10b-58cc-0372-8567-0e02b2c3d479
gibi bir kimlik kullanmayın.
Sildiğiniz bir 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. 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 Security Rules hizmetini kurun
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ında (default)
adında olmayan veritabanları bulunur. 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.
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ı 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 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
komutuna ekleyin.
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ı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 önce silme korumasını devre dışı bırakmanız gerekir.
Veritabanı App Engine arama verisi içeriyorsa veya blob varlıklarını kullanıyorsanız önce bu verileri silmelisiniz.
Veritabanının silinmesi, hiçbir veri tabanını otomatik olarak silmez. Bu veritabanı için Eventarc tetikleyici. İ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
-
Firebase konsolunda Firestore Veritabanı sayfasına gidin.
- Veri sekmesinde, veritabanının veri tablosu görünümünün üstündeki simgesini tıklayın ve Veritabanını sil'i seçin.
- 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 öğesini, 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. 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
öğ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ğinizEMAIL
: Belirli bir Google Hesabı'nı temsil eden bir 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
: 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ğinizEMAIL
: Belirli bir Google Hesabı'nı temsil eden bir 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
: 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ğinizEMAIL
: Belirli bir Google Hesabı'nı temsil eden bir e-posta adresi. Örneğin,alice@example.com
.
Cloud Monitoring
Cloud Firestore metrikleri, izlenen iki 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ını istemek 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.(default)
veritabanınızda Blobstore verileri olup olmadığını kontrol etmek için aşağıdaki GQL sorgusunu çalıştırabilirsiniz. Google Cloud konsolunda: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ıyla ilgili etkinlikleri yapılandırmak için lütfen Cloud Firestore Tetikleyicilerini (2. Nesil) 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.