Memilih antara mode Native dan mode Datastore

Saat membuat database Firestore, Anda harus memilih antara dua mode: mode Native atau mode Datastore. Halaman ini menjelaskan perbedaan antara kedua mode tersebut.

Pilih mode database

Saat membuat database Firestore baru, Anda harus memilih mode database. Anda dapat memiliki database mode Native dan mode Datastore dalam project yang sama, tetapi setiap database akan memiliki satu jenis.

Sebaiknya lakukan hal berikut saat memilih mode database:

  • Gunakan Firestore dalam mode Native untuk semua aplikasi baru (server, seluler, dan web).

    Firestore dalam mode Native menggunakan model data berbasis dokumen yang sesuai dengan standar industri. Selain database yang sangat konsisten dan skalabel, Firestore dalam mode Native menyediakan sinkronisasi data real-time dan fitur backend-as-a-service.

  • Gunakan Firestore dalam mode Datastore jika aplikasi Anda bergantung pada Datastore API.

    Mode Datastore didukung sepenuhnya dan direkomendasikan untuk aplikasi dengan dependensi pada Datastore API. Mode Native dan mode Datastore berbagi lapisan penyimpanan pokok dengan ketersediaan, konsistensi, dan kemampuan penskalaan yang sama.

Firestore dalam mode Native

Firestore adalah versi utama Datastore berikutnya dan merupakan rebranding produk. Dengan mengambil yang terbaik dari Datastore dan Firebase Realtime Database, Firestore adalah database dokumen NoSQL yang dibuat untuk penskalaan otomatis, performa tinggi, dan kemudahan pengembangan aplikasi.

Firestore memperkenalkan fitur berikut:

  • Lapisan penyimpanan yang sangat konsisten
  • Koleksi dan model data dokumen
  • Update realtime
  • Library klien Seluler dan Web

Firestore kompatibel dengan Datastore versi lama, tetapi model data baru, pembaruan real-time, dan fitur library klien seluler dan web tidak. Untuk mengakses semua fitur Firestore, Anda harus menggunakan Firestore dalam mode Native.

Firestore dalam mode Datastore

Firestore dalam mode Datastore menggunakan perilaku sistem Datastore, tetapi mengakses lapisan penyimpanan Firestore, sehingga menghilangkan batasan Datastore berikut:

  • Semua kueri Datastore kini memiliki konsistensi kuat, kecuali jika Anda secara eksplisit meminta konsistensi tertunda.
  • Kueri dalam transaksi tidak lagi harus berupa kueri ancestor.
  • Transaksi tidak lagi terbatas pada 25 entity group.
  • Menulis ke entity group tidak lagi dibatasi hingga 1 per detik.

Mode Datastore menonaktifkan fitur Firestore yang tidak kompatibel dengan Datastore:

  • Project akan menerima permintaan Datastore API dan menolak permintaan Firestore API.
  • Project akan menggunakan indeks Datastore, bukan indeks Firestore.
  • Anda dapat menggunakan library klien Datastore dengan project ini, tetapi tidak dengan library klien Firestore.
  • Kemampuan real-time Firestore tidak akan tersedia.
  • Di konsol Google Cloud , database akan menggunakan penampil Datastore.

Harga dan lokasi

Database mode Native dan mode Datastore menggunakan struktur harga yang sama dan tersedia di lokasi yang sama. Harga dan lokasi dijelaskan secara mendetail di halaman berikut:

Firestore dalam mode Native

Firestore dalam mode Datastore

Perbandingan fitur

Tabel berikut membandingkan perilaku sistem mode database:

Firestore dalam
mode Native
Firestore dalam
mode Datastore
Model data Database dokumen yang disusun menjadi dokumen dan koleksi. Entitas disusun ke dalam jenis dan grup entitas.
Lapisan Penyimpanan Lapisan penyimpanan yang sangat konsisten. Lapisan penyimpanan yang sangat konsisten.
Kueri dan transaksi
  • Kueri yang sangat konsisten di seluruh database
  • Menghilangkan batasan konsistensi Datastore sebelumnya
  • Kueri yang sangat konsisten di seluruh database
  • Transaksi dapat mengakses sejumlah entity group
Dukungan Datastore v1 API Tidak, permintaan ditolak Ya
Dukungan Firestore v1 API Ya Tidak, permintaan ditolak
Update real-time

Mendukung kemampuan untuk memproses dokumen atau sekumpulan dokumen untuk mendapatkan pembaruan real-time.

Saat memproses dokumen atau sekumpulan dokumen, klien Anda akan diberi tahu tentang perubahan data apa pun dan dikirimi kumpulan data terbaru.

Tidak didukung
Persistensi data offline Library klien seluler dan web mendukung persistensi data offline. Tidak didukung
Library klien Library klien Firestore:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • Android
  • iOS+
  • Web
  • C++
  • Unity
Library klien Datastore:
  • Java
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • C++
Keamanan
  • Identity and Access Management (IAM) mengelola akses database
  • Aturan Keamanan Firestore mendukung autentikasi dan otorisasi tanpa server untuk library klien seluler dan web
IAM mengelola akses database
Performa Menskalakan secara otomatis hingga jutaan klien serentak. Menskalakan secara otomatis hingga jutaan penulisan per detik.
SLA SLA Firestore SLA Firestore
Lokasi

Kedua mode mendukung lokasi yang sama. Untuk mengetahui daftar lokasi yang mendetail, lihat halaman berikut:

Harga

Kedua mode menggunakan struktur harga yang sama untuk operasi entitas dan dokumen.

Firestore dalam mode Datastore tidak mengenakan biaya untuk operasi kecil.

Kedua mode menggunakan struktur harga yang sama untuk data yang disimpan dan bandwidth jaringan.

Untuk mengetahui detail selengkapnya tentang harga, lihat halaman berikut:

Konsol Firebase Console dan Google Cloud console Firestore Viewer Google Cloud console Datastore Viewer
Namespace Tidak didukung Namespace yang didukung
Integrasi library klien App Engine

Tidak didukung di runtime Python 2.7 dan PHP 5.5 lingkungan standar App Engine

Didukung di lingkungan standar App Engine, semua runtime lainnya

Didukung di lingkungan fleksibel App Engine, semua runtime

Didukung di semua runtime

Membuat database baru

Anda dapat membuat database Firestore baru dalam mode Native atau mode Datastore. Pilihan ini tidak bergantung pada mode database yang ada di project Anda.

Lihat Membuat dan mengelola database untuk mengetahui info selengkapnya.

Beralih antara mode Native dan mode Datastore

Jika database Anda kosong, Anda dapat beralih antara mode Native dan mode Datastore.

Ubah database ke mode Native:

gcloud

Gunakan perintah gcloud firestore databases update untuk mengubah database Anda ke mode Native.

gcloud firestore databases update --type=firestore-native --database='DATABASE_ID'

Ganti DATABASE_ID dengan ID database Anda.

istirahat

curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"FIRESTORE_NATIVE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID?updateMask=type"

Ganti kode berikut:

  • PROJECT_ID: the project ID
  • DATABASE_ID: ID database

Mengubah database ke mode Datastore:

gcloud

Gunakan perintah gcloud firestore databases update untuk mengubah database Anda ke mode Datastore.

 gcloud firestore databases update --type=datastore-mode --database='DATABASE_ID'

Ganti DATABASE_ID dengan ID database Anda.

istirahat

curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"DATASTORE_MODE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID?updateMask=type"

Ganti kode berikut:

  • PROJECT_ID: the project ID
  • DATABASE_ID: ID database