Mengelola database

Halaman ini berisi penjelasan mengenai cara membuat, mengupdate, dan menghapus database Cloud Firestore. Anda dapat membuat beberapa database Cloud Firestore per project. Anda dapat menggunakan beberapa database untuk menyiapkan lingkungan produksi dan pengujian, mengisolasi data pelanggan, serta untuk regionalisasi data.

Database (default)

Jika aplikasi Anda tidak memerlukan beberapa database, gunakan database (default).

Jika Anda tidak menentukan database, library klien Cloud Firestore dan Google Cloud CLI akan terhubung ke database (default) secara default.

Anda dapat menggunakan Kuota gratis hanya dengan database (default).

Peran yang diperlukan

Untuk membuat dan mengelola database, Anda memerlukan peran Owner atau Datastore Owner Identity and Access Management. 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

Membuat database

Untuk membuat database, gunakan salah satu metode berikut:

Konsol
  1. Di Google Cloud Platform Console, buka halaman Database.

    Buka Database

  2. Klik Create database.
  3. Pilih mode database. Klik Continue
  4. Konfigurasikan database Anda. Masukkan ID Database. Pilih lokasi. Klik Create database.
gcloud

Gunakan perintah gcloud alpha firestore databases create.

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

Ganti kode berikut:

--delete-protection adalah flag opsional untuk mengaktifkan perlindungan penghapusan. Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan hingga Anda menonaktifkan setelan ini. Jika tidak diubah, setelan ini dinonaktifkan secara default.

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

Ganti kode berikut:

--delete-protection adalah argumen opsional untuk mengaktifkan perlindungan penghapusan. Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan hingga Anda menonaktifkan setelan ini. Jika tidak diubah, setelan ini dinonaktifkan secara default.

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
}

Ganti kode berikut:

delete_protection_state adalah argumen opsional untuk mengaktifkan perlindungan penghapusan. Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan hingga Anda menonaktifkan setelan ini. Jika tidak diubah, setelan ini dinonaktifkan secara default.

ID Database

ID database yang valid mencakup (default) dan 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 hapus untuk mencegah penghapusan database secara tidak sengaja. Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan hingga 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.

Menyiapkan Aturan Keamanan Cloud Firestore untuk database Anda

Gunakan Firebase CLI untuk men-deploy Aturan Keamanan Cloud Firestore ke setiap database Anda. Lihat panduan untuk mengelola dan men-deploy Aturan Keamanan Cloud Firestore.

Mengakses database yang telah diberi nama dengan library klien

Database bernama mencakup semua database yang tidak bernama (default). Secara default, Firebase SDK dan Library Klien Google API terhubung ke database Cloud Firestore (default) dalam sebuah project. Untuk membuat klien yang terhubung ke database yang telah diberi nama, tetapkan ID database saat Anda membuat instance klien.

Mencantumkan database

Gunakan salah satu metode berikut untuk mencantumkan database Anda:

Konsol

Di Google Cloud Platform Console, buka halaman Database.

Buka Database

gcloud

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 perintah gcloud firestore databases describe:

gcloud
gcloud firestore databases describe --database=DATABASE_ID

Ganti DATABASE_ID dengan ID database.

Memperbarui konfigurasi database

Untuk memperbarui setelan konfigurasi database, gunakan perintah gcloud alpha firestore databases update. Gunakan perintah ini untuk mengubah setelan untuk mengaktifkan atau menonaktifkan perlindungan hapus.

Memperbarui setelan perlindungan hapus

Untuk mengaktifkan perlindungan penghapusan di database, gunakan perintah gcloud alpha firestore databases update dengan flag --delete-protection. Contoh:

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

Ganti DATABASE_ID dengan ID database.

Untuk menonaktifkan perlindungan penghapusan di database, gunakan perintah gcloud alpha firestore databases update dengan flag --no-delete-protection. Contoh:

gcloud
gcloud alpha 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.

Jika setelan perlindungan penghapusan database diaktifkan, Anda harus menonaktifkan perlindungan penghapusan terlebih dahulu.

Jika database berisi data penelusuran App Engine atau entity blob, Anda harus menghapus data tersebut terlebih dahulu.

Menghapus database tidak otomatis menghapus pemicu Eventarc untuk database tersebut. Pemicu berhenti mengirim peristiwa, tetapi akan tetap ada sampai Anda menghapus pemicu.

Konsol
  1. Di Google Cloud Platform Console, buka halaman Database.

    BUka Database

  2. Klik View more di baris tabel untuk database yang ingin dihapus. Klik Delete. Dialog akan muncul.
  3. 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

Gunakan perintah `gcloud alpha firestore databases delete`.

gcloud alpha firestore databases delete --database=DATABASE_ID

Ganti DATABASE_ID dengan ID database yang akan dihapus.

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 GCP Console.

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 Anda
  • EMAIL: alamat email yang mewakili Akun Google tertentu. Misalnya alice@example.com.
  • DATABASE_ID: ID database.
  • TITLE: judul opsional untuk ekspresi.
  • DESCRIPTION: deskripsi opsional untuk ekspresi.

Mengecualikan akses ke satu database khusus

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 Anda
  • EMAIL: alamat email yang mewakili Akun Google tertentu. Misalnya alice@example.com.
  • DATABASE_ID: ID database.
  • TITLE: judul opsional untuk ekspresi.
  • DESCRIPTION: deskripsi opsional untuk ekspresi.

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 Anda
  • EMAIL: alamat email yang mewakili Akun Google tertentu. Misalnya alice@example.com.

Cloud Monitoring

Metrik Cloud Firestore dilaporkan dalam dua resource yang dimonitor.

Anda dapat memeriksa metrik gabungan di tingkat database dengan melihat firestore.googleapis.com/Database. Metrik yang dilaporkan dalam firestore_instance digabungkan di tingkat project.

Batasan

Langkah berikutnya