Halaman ini menjelaskan 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.
(default)
.
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
Membuat database
Untuk membuat database, gunakan salah satu metode berikut:
Konsol
-
Di Firebase console, buka halaman Firestore Database.
- Jika ini adalah database bernama pertama Anda, klik Add database.
- Jika tidak, klik (default), lalu Add database.
- Konfigurasikan database Anda. Masukkan ID Database. Pilih lokasi. Klik Create database.
gcloud
Gunakan
perintah
gcloud firestore databases create
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Ganti kode berikut:
- DATABASE_ID: ID database yang valid.
- LOCATION: nama multi-region atau region Cloud Firestore.
- DATABASE_TYPE:
firestore-native
untuk mode Native ataudatastore-mode
untuk mode Datastore.
--delete-protection
adalah flag opsional untuk mengaktifkan perlindungan penghapusan.
Anda tidak dapat menghapus database yang mengaktifkan perlindungan penghapusan hingga Anda
menonaktifkan setelan ini. Setelan ini dinonaktifkan secara default.
Firebase CLI
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Ganti kode berikut:
- DATABASE_ID: ID database yang valid.
- LOCATION: nama multi-region atau region Cloud Firestore.
- DELETE_PROTECTION_ENABLEMENT:
ENABLED
atauDISABLED
.
Database yang dibuat selalu dalam mode Native Firestore.
--delete-protection
adalah argumen
opsional untuk mengaktifkan perlindungan penghapusan. Anda tidak dapat menghapus database yang
mengaktifkan perlindungan penghapusan hingga Anda menonaktifkan setelan ini. 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:
- DATABASE_ID: ID database yang valid.
- LOCATION: nama multi-region atau region Cloud Firestore.
- DATABASE_TYPE:
FIRESTORE_NATIVE
untuk mode Native atauDATASTORE_MODE
untuk mode Datastore. - DELETE_PROTECTION_ENABLEMENT: Antara
DELETE_PROTECTION_ENABLED
atauDELETE_PROTECTION_DISABLED
.
delete_protection_state
adalah argumen opsional untuk mengaktifkan perlindungan
penghapusan. 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 (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 penghapusan untuk mencegah penghapusan database secara tidak sengaja. 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.
Menyiapkan Cloud Firestore Security Rules untuk database Anda
Gunakan Firebase CLI untuk men-deploy Cloud Firestore Security Rules ke setiap database Anda. Lihat panduan untuk mengelola dan men-deploy Cloud Firestore Security Rules.
Mengakses database bernama dengan library klien
Database bernama adalah 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 bernama, tetapkan ID database saat Anda membuat instance klien.
Mencantumkan database
Gunakan salah satu metode berikut untuk mencantumkan database Anda:
Konsol
Di konsol Google Cloud, buka halaman Databases.
gcloud
Gunakan
perintah
gcloud firestore databases list
untuk mencantumkan semua database di project Anda.
gcloud firestore databases list
Firebase CLI
Gunakan perintah firebase firestore:databases:list
untuk mencantumkan semua database di project Anda.
firebase firestore:databases:list
Melihat detail database
Untuk melihat detail tentang satu database, gunakan salah satu metode berikut:
gcloud
Gunakan perintah gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Firebase CLI
Gunakan perintah firebase firestore:databases:get
:
firebase firestore:databases:get 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 setelan dan 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
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
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.
Jika setelan perlindungan penghapusan database diaktifkan, Anda perlu 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 secara otomatis menghapus pemicu Eventarc untuk database tersebut. Pemicu berhenti mengirim peristiwa, tetapi akan tetap ada sampai Anda menghapus pemicu.
Konsol
-
Di Firebase console, buka halaman Firestore Database.
- Di tab Data, di atas tampilan tabel data untuk database, klik , lalu pilih Delete database.
- Ikuti petunjuk untuk menghapus database.
gcloud
Gunakan perintah `gcloud firestore databases delete`.
gcloud 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 Konsol Google Cloud.
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 Google tertentu. Misalnyaalice@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 Google tertentu. Misalnyaalice@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 Google tertentu. Misalnyaalice@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
- Anda dapat memiliki maksimum 100 database per project. Anda dapat menghubungi dukungan untuk meminta peningkatan batas ini.
- Anda tidak dapat menghapus database
(default)
jika berisi data penelusuran GAE. Gunakan api penghapusan indeks untuk menghapus data penelusuran GAE. Jika Anda baru saja menghapus data Penelusuran GAE, mungkin ada waktu tunggu sebelum Anda dapat menghapus database tersebut. - Anda tidak dapat menghapus database
(default)
jika berisi entity blob apa pun. Gunakan Blobstore delete api untuk menghapus data Blobstore. Anda dapat memeriksa apakah database(default)
Anda memiliki data Blobstore dengan menjalankan kueri GQL berikut di Konsol Google Cloud:SELECT * FROM __BlobInfo__
. - Anda tidak dapat menggunakan kembali ID database hingga 5 menit setelah penghapusan.
- Cloud Function v1 tidak mendukung Database bernama Firestore. Gunakan Pemicu Cloud Firestore (generasi ke-2) untuk mengonfigurasi peristiwa database bernama.
- Pemicu fungsi Firestore v1 dan pemicu peristiwa Firestore mungkin berhenti berfungsi setelah database dihapus, bahkan jika membuat database baru dengan nama yang sama.