Saat membuat database Firestore baru, Anda dapat mengonfigurasi instance database untuk dijalankan dalam mode Datastore yang membuat database kompatibel dengan Datastore versi lama. Halaman ini membantu Anda memahami perbedaan antara mode database Firestore berikut: mode Native dan mode Datastore.
Firestore dalam mode Native
Firestore adalah versi utama berikutnya dari Datastore dan 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 menghapus keterbatasan Datastore berikut:
- Semua kueri Datastore kini konsisten dengan 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 dapat menggunakan 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
Memilih mode database
Saat membuat database Firestore baru, Anda harus memilih mode database. Anda dapat memiliki database mode Datastore dan mode Native dalam project yang sama, tetapi setiap database akan memiliki satu jenis. Sebaiknya lakukan hal berikut saat memilih mode database:
Gunakan Firestore dalam mode Datastore untuk project server baru.
Firestore dalam mode Datastore memungkinkan Anda menggunakan arsitektur server Datastore yang sudah mapan sekaligus menghapus batasan Datastore fundamental. Mode Datastore dapat otomatis diskalakan hingga jutaan operasi tulis per detik.
Gunakan Firestore dalam mode Native untuk aplikasi seluler dan web baru.
Firestore menawarkan library klien seluler dan web dengan fitur real-time dan offline. Mode native dapat otomatis diskalakan ke jutaan klien serentak.
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. | Entity yang diatur ke dalam jenis dan grup entity. |
Lapisan Penyimpanan | Lapisan penyimpanan yang sangat konsisten. | Lapisan penyimpanan yang sangat konsisten. |
Kueri dan transaksi |
|
|
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 kumpulan dokumen untuk pembaruan real-time. Saat memproses dokumen atau kumpulan dokumen, klien Anda akan diberi tahu tentang perubahan data apa pun dan dikirim kumpulan data terbaru. |
Tidak didukung |
Persistensi data offline | Library klien seluler dan web mendukung persistensi data offline. | Tidak didukung |
Library klien |
Library klien Firestore:
|
Library klien Datastore:
|
Keamanan |
|
IAM mengelola akses database |
Performa | Menskalakan secara otomatis ke jutaan klien serentak. | Menskalakan secara otomatis ke jutaan operasi tulis per detik. |
SLA | SLA Firestore | SLA Firestore |
Lokasi |
Kedua mode tersebut mendukung lokasi yang sama. Untuk mengetahui daftar lokasi yang mendetail, lihat halaman berikut: |
|
Harga |
Kedua mode tersebut menggunakan struktur harga yang sama untuk operasi entitas dan dokumen. Firestore dalam mode Datastore tidak mengenakan biaya untuk operasi kecil. Kedua mode tersebut 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 Firestore Viewer Google Cloud console | Datastore Viewer konsol Google Cloud |
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
Ubah 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