Membuat dan mengelola database
Halaman ini menjelaskan cara membuat, mengupdate, dan menghapus database Firestore dengan kompatibilitas MongoDB. Anda dapat membuat beberapa database Firestore per project. Anda dapat menggunakan beberapa database untuk menyiapkan lingkungan produksi dan pengujian, mengisolasi data pelanggan, serta untuk regionalisasi data.
Penggunaan paket gratis
Firestore menawarkan paket gratis yang memungkinkan Anda memulai tanpa biaya.
Paket gratis hanya berlaku untuk satu database Firestore per project. Database pertama yang dibuat dalam project tanpa database tingkat gratis akan mendapatkan tingkat gratis. Jika database dengan tingkat gratis yang diterapkan dihapus, database berikutnya yang dibuat akan menerima tingkat gratis.
Sebelum memulai
Anda harus menyelesaikan langkah-langkah berikut sebelum membuat database:
-
Verify that billing is enabled for your Google Cloud project.
- Tetapkan peran Identity and Access Management yang sesuai seperti yang dijelaskan di bagian berikutnya.
Peran yang diperlukan
Untuk membuat dan mengelola database, Anda memerlukan peran Identity and Access Management Owner
atau Datastore Owner
. Peran ini memberikan izin yang diperlukan.
Izin yang diperlukan
Untuk mengelola database, Anda memerlukan izin berikut:
- Membuat database:
datastore.databases.create
- Membaca konfigurasi database:
datastore.databases.getMetadata
- Mengonfigurasi database:
datastore.databases.update
- Menghapus database:
datastore.databases.delete
- Meng-clone database:
datastore.databases.clone
Buat database
Untuk membuat database Firestore dengan kompatibilitas MongoDB, gunakan salah satu metode berikut:
Google Cloud console
-
Di konsol Google Cloud , buka halaman Databases.
- Klik Create a Firestore Database.
- Masukkan ID database.
- Pilih Edisi Enterprise.
- Pilih lokasi untuk database Anda.
- (Opsional) Jika Anda perlu menyesuaikan enkripsi, klik Tampilkan Opsi Enkripsi dan konfigurasi opsi enkripsi.
- Klik Create database.
gcloud CLI
Gunakan perintah
gcloud firestore databases create
dan tetapkan --edition=enterprise
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
Ganti kode berikut:
- DATABASE_ID: ID database yang valid.
- LOCATION: nama multi-region atau region Firestore dengan kompatibilitas MongoDB.
Untuk mengaktifkan perlindungan penghapusan, tambahkan tanda --delete-protection
.
Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan hingga Anda menonaktifkan setelan ini. Setelan ini dinonaktifkan secara default.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Untuk menambahkan tag
ke database, gunakan
flag
--tags
. Contoh:
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
Terraform
Gunakan resource
google_firestore_database
dan tetapkan database_edition
ke ENTERPRISE
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
Ganti kode berikut:
- DATABASE_ID: ID database yang valid.
- LOCATION: nama multi-region atau region Firestore dengan kompatibilitas MongoDB.
- DELETE_PROTECTION_ENABLEMENT: Antara
DELETE_PROTECTION_ENABLED
atauDELETE_PROTECTION_DISABLED
.
Untuk mengaktifkan perlindungan penghapusan, tetapkan delete_protection_state
ke DELETE_PROTECTION_ENABLED
.
Anda tidak dapat menghapus database yang
mengaktifkan perlindungan penghapusan kecuali jika Anda menonaktifkan setelan ini. Setelan ini dinonaktifkan secara default.
ID Database
ID database yang valid mencakup ID yang sesuai dengan hal berikut:
- Hanya berisi karakter huruf, angka, dan tanda hubung (
-
). - Huruf harus berupa huruf kecil.
- Karakter pertama harus berupa huruf.
- Karakter terakhir harus berupa huruf atau angka.
- Minimum 4 karakter.
- Maksimum 63 karakter.
- Tidak boleh berupa UUID atau menyerupai UUID. Misalnya, jangan gunakan ID seperti
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Jika menghapus database, Anda tidak dapat langsung menggunakan kembali ID database hingga 5 menit.
Menghapus perlindungan
Gunakan perlindungan penghapusan untuk mencegah penghapusan database secara tidak sengaja. Perlindungan penghapusan berfungsi dengan cara berikut:
- Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan kecuali jika Anda menonaktifkan perlindungan penghapusan.
- Perlindungan penghapusan dinonaktifkan secara default.
- Anda dapat mengaktifkan perlindungan penghapusan saat membuat database atau memperbarui konfigurasi database untuk mengaktifkan perlindungan penghapusan.
Mencantumkan database
Gunakan salah satu metode berikut untuk mencantumkan database Anda:
Konsol
Di konsol Google Cloud , buka halaman Databases.
gcloud CLI
Gunakan
perintah gcloud firestore databases list
untuk mencantumkan semua database di project Anda.
gcloud firestore databases list
Melihat detail database
Untuk melihat detail tentang satu database, gunakan salah satu metode berikut:
Konsol
-
Di konsol Google Cloud , buka halaman Databases.
- Pilih database dari daftar database.
gcloud CLI
Gunakan perintah gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Ganti DATABASE_ID dengan ID database.
Memperbarui konfigurasi database
Untuk memperbarui setelan konfigurasi database, gunakan
perintah
gcloud firestore databases update
.
Gunakan perintah ini untuk mengubah, mengaktifkan, atau menonaktifkan perlindungan penghapusan.
Memperbarui setelan perlindungan penghapusan
Untuk mengaktifkan perlindungan penghapusan di database, gunakan perintah gcloud firestore databases update
dengan flag --delete-protection
. Contoh:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Ganti DATABASE_ID dengan ID database.
Untuk menonaktifkan perlindungan penghapusan di database, gunakan
perintah gcloud firestore databases update
dengan flag --no-delete-protection
. Contoh:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Ganti DATABASE_ID dengan ID database.
Menghapus database
Untuk menghapus database, gunakan konsol atau alat command line. Menghapus database untuk operasi penghapusan tidak dikenai biaya.
Jika setelan perlindungan penghapusan database diaktifkan, Anda harus menonaktifkan perlindungan penghapusan terlebih dahulu.
Google Cloud console
-
Di konsol Google Cloud , buka halaman Databases.
- Klik View more di kolom Actions untuk database yang ingin Anda hapus. Klik Hapus. Dialog akan muncul.
Pada dialog Delete database?, konfirmasi penghapusan dengan mengetikkan ID database di kolom teks. Klik Delete. Konsol akan memberi tahu Anda apakah operasi berhasil atau gagal.
Jika operasi gagal, lihat detail database dan pastikan perlindungan penghapusan dinonaktifkan. Untuk menonaktifkan perlindungan penghapusan, lihat bagian Memperbarui setelan perlindungan penghapusan.
gcloud CLI
Gunakan perintah `gcloud firestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Ganti DATABASE_ID dengan ID database yang akan dihapus.
Meng-clone database
Anda dapat meng-clone database yang ada pada stempel waktu yang dipilih ke database baru:
Database yang di-clone adalah database baru yang akan dibuat di lokasi yang sama dengan database sumber.
Untuk membuat clone, Firestore menggunakan data pemulihan point-in-time (PITR) dari database sumber. Database yang di-clone mencakup semua data dan indeks.
Secara default, database yang di-clone akan dienkripsi dengan cara yang sama seperti database sumber, menggunakan enkripsi default Google atau enkripsi CMEK. Anda dapat menentukan jenis enkripsi yang berbeda atau menggunakan kunci yang berbeda untuk enkripsi CMEK.
Stempel waktu memiliki perincian satu menit dan menentukan titik waktu di masa lalu, dalam periode yang ditentukan oleh interval PITR:
- Jika PITR diaktifkan untuk database Anda, Anda dapat memilih menit mana saja dalam 7 hari terakhir (atau kurang jika PITR diaktifkan kurang dari 7 hari yang lalu).
- Jika PITR tidak diaktifkan, Anda dapat memilih menit mana pun dalam satu jam terakhir.
- Anda dapat memeriksa stempel waktu paling awal yang dapat Anda pilih dalam deskripsi database Anda.
Konsol
Di konsol Google Cloud , buka halaman Databases.
Klik
View more di baris tabel untuk database yang ingin Anda clone. Klik Clone. Dialog Buat clone akan muncul.Pada dialog Buat clone, berikan parameter untuk meng-clone database:
Di kolom Beri ID pada clone, masukkan ID database untuk database baru yang di-clone. ID database ini tidak boleh dikaitkan dengan database yang sudah ada.
Di kolom Clone dari, pilih titik waktu yang akan digunakan untuk cloning. Waktu yang dipilih sesuai dengan stempel waktu PITR, pada tingkat perincian menit.
Klik Buat clone.
gcloud
Gunakan perintah
gcloud alpha firestore databases clone
untuk meng-clone database:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE_ID' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Ganti kode berikut:
SOURCE_DATABASE_ID: ID database dari database yang ada yang ingin Anda clone.
PITR_TIMESTAMP: stempel waktu PITR dalam format RFC 3339, pada tingkat perincian menit. Misalnya:
2025-06-01T10:20:00.00Z
atau2025-06-01T10:30:00.00-07:00
.DESTINATION_DATABASE_ID: ID database untuk database baru yang dikloning. ID database ini tidak boleh dikaitkan dengan database yang ada.
Contoh:
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'
Mengubah konfigurasi enkripsi database yang di-clone
Secara default, database yang di-clone akan memiliki konfigurasi enkripsi
yang sama dengan database sumber. Untuk mengubah konfigurasi enkripsi, gunakan
argumen --encryption-type
:
- (Default)
use-source-encryption
: menggunakan konfigurasi enkripsi yang sama dengan database sumber. google-default-encryption
: menggunakan enkripsi default Google.customer-managed-encryption
: menggunakan enkripsi CMEK. Tentukan ID kunci dalam argumen--kms-key-name
.
Contoh berikut menunjukkan cara mengonfigurasi enkripsi CMEK untuk database yang di-clone:
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'
Mengonfigurasi izin akses per database
Anda dapat menggunakan Identity and Access Management Conditions untuk mengonfigurasi izin akses di tingkat per database. Contoh berikut menggunakan Google Cloud CLI guna menetapkan akses kondisional untuk satu atau beberapa database. Anda juga dapat menetapkan kondisi IAM di Google Cloud konsol.
Melihat kebijakan IAM yang ada
gcloud projects get-iam-policy PROJECT_ID
Tetapkan PROJECT_ID
ke project ID Anda.
Memberikan akses ke database
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'
Tetapkan berikut ini:
PROJECT_ID
: project ID AndaEMAIL
: alamat email yang mewakili akun tertentu. Contoh,alice@example.com
.DATABASE_ID
: ID database.TITLE
: judul ekspresi opsional.DESCRIPTION
: deskripsi ekspresi opsional.
Mengecualikan akses ke satu database tertentu
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'
Tetapkan berikut ini:
PROJECT_ID
: project ID AndaEMAIL
: alamat email yang mewakili akun tertentu. Contoh,alice@example.com
.DATABASE_ID
: ID database.TITLE
: judul ekspresi opsional.DESCRIPTION
: deskripsi ekspresi opsional.
Menghapus kebijakan untuk anggota dan peran tertentu
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Tetapkan berikut ini:
PROJECT_ID
: project ID AndaEMAIL
: alamat email yang mewakili akun tertentu. Contoh,alice@example.com
.
Batasan
Anda dapat memiliki maksimum 100 database per project. Anda dapat menghubungi dukungan untuk meminta peningkatan batas ini.
Langkah berikutnya
- Jalankan Panduan memulai: Membuat database dan terhubung ke database tersebut.
- Pelajari Perbedaan perilaku.
- Pelajari metrik Cloud Monitoring untuk Firestore dengan kompatibilitas MongoDB.