Package google.firestore.v1

Indeks

Firestore

Layanan Cloud Firestore.

Cloud Firestore adalah database dokumen NoSQL yang cepat, terkelola sepenuhnya, tanpa server, dan berbasis cloud, yang menyederhanakan proses penyimpanan, sinkronisasi, dan pembuatan kueri data untuk aplikasi seluler, web, dan IoT dalam skala global. Library kliennya menyediakan sinkronisasi live dan dukungan offline, sementara fitur keamanan dan integrasinya dengan Firebase dan Google Cloud Platform mempercepat pembuatan aplikasi yang benar-benar serverless.

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

Mendapatkan beberapa dokumen.

Dokumen yang ditampilkan dengan metode ini tidak dijamin akan dikembalikan dalam urutan yang sama seperti yang diminta.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

BatchWrite

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

Menerapkan sekumpulan operasi tulis.

Metode BatchWrite tidak menerapkan operasi tulis secara atomik dan dapat menerapkannya secara tidak berurutan. Metode tidak mengizinkan lebih dari satu penulisan per dokumen. Setiap penulisan berhasil atau gagal secara independen. Lihat BatchWriteResponse untuk mengetahui status keberhasilan setiap penulisan.

Jika Anda memerlukan kumpulan operasi tulis yang diterapkan secara atomik, gunakan Commit.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

BeginTransaction

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

Memulai transaksi baru.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

Commit

rpc Commit(CommitRequest) returns (CommitResponse)

Melakukan transaksi, sekaligus memperbarui dokumen secara opsional.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

Membuat dokumen baru.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

Menghapus dokumen.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

Mendapatkan satu dokumen.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

ListCollectionIds

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

Mencantumkan semua ID koleksi di bawah dokumen.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

ListDocuments

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

Mencantumkan dokumen.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

Dengarkan

rpc Listen(ListenRequest) returns (ListenResponse)

Memproses perubahan. Metode ini hanya tersedia melalui gRPC atau WebChannel (bukan REST).

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

PartitionQuery

rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse)

Mempartisi kueri dengan menampilkan kursor partisi yang dapat digunakan untuk menjalankan kueri secara paralel. Kursor partisi yang ditampilkan adalah titik terpisah yang dapat digunakan oleh RunQuery sebagai titik awal/akhir untuk hasil kueri.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

Rollback

rpc Rollback(RollbackRequest) returns (Empty)

Me-roll back transaksi.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

RunAggregationQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

Menjalankan kueri agregasi.

Daripada memberikan hasil Document seperti Firestore.RunQuery, API ini memungkinkan Anda menjalankan agregasi untuk menghasilkan serangkaian AggregationResult sisi server.

Contoh Tingkat Tinggi:

-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

RunQuery

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

Menjalankan kueri.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

UpdateDocument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

Memperbarui atau menyisipkan dokumen.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

Tulis

rpc Write(WriteRequest) returns (WriteResponse)

Streaming batch pembaruan dan penghapusan dokumen, secara berurutan. Metode ini hanya tersedia melalui gRPC atau WebChannel (bukan REST).

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

  • https://www.googleapis.com/auth/datastore
  • https://www.googleapis.com/auth/cloud-platform

Untuk informasi selengkapnya, lihat Ringkasan Autentikasi.

AggregationResult

Hasil satu bucket dari kueri agregasi Firestore.

Kunci aggregate_fields sama untuk semua hasil dalam kueri agregasi, tidak seperti kueri dokumen yang dapat memiliki kolom berbeda untuk setiap hasil.

Kolom
aggregate_fields

map<string, Value>

Hasil fungsi agregasi, misalnya: COUNT(*) AS total_docs.

Kuncinya adalah alias yang ditetapkan ke fungsi agregasi pada input dan ukuran peta ini sama dengan jumlah fungsi agregasi dalam kueri.

ArrayValue

Nilai array.

Kolom
values[]

Value

Nilai dalam array.

BatchGetDocumentsRequest

Permintaan untuk Firestore.BatchGetDocuments.

Kolom
database

string

Wajib. Nama database. Dalam format: projects/{project_id}/databases/{database_id}.

documents[]

string

Nama dokumen yang akan diambil. Dalam format: projects/{project_id}/databases/{database_id}/documents/{document_path}. Permintaan akan gagal jika salah satu dokumen bukan merupakan resource turunan dari database yang ditentukan. Nama duplikat akan dihapus.

mask

DocumentMask

Kolom yang akan ditampilkan. Jika tidak ditetapkan, semua kolom akan ditampilkan.

Jika dokumen memiliki kolom yang tidak ada dalam mask ini, kolom tersebut tidak akan ditampilkan dalam respons.

Kolom union consistency_selector. Mode konsistensi untuk transaksi ini. Jika tidak disetel, setelan default-nya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
transaction

bytes

Membaca dokumen dalam transaksi.

new_transaction

TransactionOptions

Memulai transaksi baru dan membaca dokumen. Setelan defaultnya adalah transaksi hanya baca. ID transaksi baru akan ditampilkan sebagai respons pertama dalam aliran data.

read_time

Timestamp

Membaca dokumen sebagaimana adanya pada waktu yang ditentukan.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, dapat juga berupa stempel waktu menit penuh dalam 7 hari terakhir.

BatchGetDocumentsResponse

Respons yang di-streaming untuk Firestore.BatchGetDocuments.

Kolom
transaction

bytes

Transaksi yang dimulai sebagai bagian dari permintaan ini. Hanya akan ditetapkan dalam respons pertama, dan hanya jika BatchGetDocumentsRequest.new_transaction telah ditetapkan dalam permintaan.

read_time

Timestamp

Waktu saat dokumen dibaca. Jumlah ini mungkin meningkat secara monoton, dalam hal ini dokumen sebelumnya dalam aliran hasil dijamin tidak berubah antara waktu baca dan yang ini.

Kolom union result. Hasil tunggal. Kolom ini boleh kosong jika server baru saja menampilkan transaksi. result hanya ada berupa salah satu diantara berikut:
found

Document

Dokumen yang diminta.

missing

string

Nama dokumen yang diminta tetapi tidak ada. Dalam format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

BatchWriteRequest

Permintaan untuk Firestore.BatchWrite.

Kolom
database

string

Wajib. Nama database. Dalam format: projects/{project_id}/databases/{database_id}.

writes[]

Write

Penulisan yang akan diterapkan.

Metode tidak menerapkan penulisan secara atomik dan tidak menjamin pengurutan. Setiap penulisan berhasil atau gagal secara independen. Anda tidak dapat menulis ke dokumen yang sama lebih dari sekali per permintaan.

labels

map<string, string>

Label yang terkait dengan batch operasi ini.

BatchWriteResponse

Respons dari Firestore.BatchWrite.

Kolom
write_results[]

WriteResult

Hasil penerapan penulisan.

Hasil penulisan i-th ini sesuai dengan penulisan i-th dalam permintaan.

status[]

Status

Status penerapan operasi tulis.

Status penulisan i-th ini sesuai dengan penulisan ke-i dalam permintaan.

BeginTransactionRequest

Permintaan untuk Firestore.BeginTransaction.

Kolom
database

string

Wajib. Nama database. Dalam format: projects/{project_id}/databases/{database_id}.

options

TransactionOptions

Opsi untuk transaksi. Setelan defaultnya adalah transaksi baca-tulis.

BeginTransactionResponse

Respons untuk Firestore.BeginTransaction.

Kolom
transaction

bytes

Transaksi yang dimulai.

BitSequence

Urutan bit yang dienkode dalam array byte.

Setiap byte dalam array byte bitmap menyimpan 8 bit urutan. Satu-satunya pengecualian adalah byte terakhir, yang dapat menyimpan 8 atau kurang bit. padding menentukan jumlah bit byte terakhir yang akan diabaikan sebagai "padding". Nilai bit "padding" ini tidak ditentukan dan harus diabaikan.

Untuk mengambil bit pertama, bit 0, hitung: (bitmap[0] & 0x01) != 0. Untuk mengambil bit kedua, bit 1, hitung: (bitmap[0] & 0x02) != 0. Untuk mengambil bit ketiga, bit 2, hitung: (bitmap[0] & 0x04) != 0. Untuk mengambil bit keempat, bit 3, hitung: (bitmap[0] & 0x08) != 0. Untuk mengambil bit n, hitung: (bitmap[n / 8] & (0x01 << (n % 8))) != 0.

"Ukuran" BitSequence (jumlah bit yang ada di dalamnya) dihitung dengan formula ini: (bitmap.length * 8) - padding.

Kolom
bitmap

bytes

Byte yang mengenkode urutan bit. Panjangnya mungkin nol.

padding

int32

Jumlah bit byte terakhir dalam bitmap yang akan diabaikan sebagai "padding". Jika panjang bitmap adalah nol, maka nilai ini harus 0. Jika tidak, nilai ini harus antara 0 dan 7, inklusif.

BloomFilter

Filter mekar (https://en.wikipedia.org/wiki/Bloom_filter).

Mekar filter hash entri dengan MD5 dan memperlakukan hash 128-bit yang dihasilkan sebagai 2 nilai hash 64-bit yang berbeda, ditafsirkan sebagai bilangan bulat yang tidak bertanda tangan menggunakan komplemen 2's encoding.

Kedua nilai hash ini, yang bernama h1 dan h2, kemudian digunakan untuk menghitung nilai hash hash_count menggunakan formula, mulai dari i=0:

h(i) = h1 + (i * h2)

Nilai yang dihasilkan ini kemudian diambil modulo jumlah bit dalam filter mekar untuk mendapatkan bagian dari filter mekar untuk diuji pada entri yang ditentukan.

Kolom
bits

BitSequence

Data filter bunga.

hash_count

int32

Jumlah hash yang digunakan oleh algoritma.

CommitRequest

Permintaan untuk Firestore.Commit.

Kolom
database

string

Wajib. Nama database. Dalam format: projects/{project_id}/databases/{database_id}.

writes[]

Write

Penulisan yang akan diterapkan.

Selalu dieksekusi secara atomik dan berurutan.

transaction

bytes

Jika ditetapkan, menerapkan semua penulisan dalam transaksi ini dan melakukan commit.

CommitResponse

Respons untuk Firestore.Commit.

Kolom
write_results[]

WriteResult

Hasil penerapan penulisan.

Hasil penulisan i-th ini sesuai dengan penulisan i-th dalam permintaan.

commit_time

Timestamp

Waktu saat commit terjadi. Setiap operasi baca dengan read_time yang sama atau lebih besar dijamin akan melihat efek commit.

CreateDocumentRequest

Permintaan untuk Firestore.CreateDocument.

Kolom
parent

string

Wajib. Resource induk. Misalnya: projects/{project_id}/databases/{database_id}/documents atau projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collection_id

string

Wajib. ID koleksi, yang terkait dengan parent, ke daftar. Contoh: chatrooms.

document_id

string

ID dokumen yang ditetapkan klien untuk digunakan untuk dokumen ini.

Opsional. Jika tidak ditentukan, ID akan ditetapkan oleh layanan.

document

Document

Wajib. Dokumen yang akan dibuat. name tidak boleh ditetapkan.

mask

DocumentMask

Kolom yang akan ditampilkan. Jika tidak ditetapkan, semua kolom akan ditampilkan.

Jika dokumen memiliki kolom yang tidak ada dalam mask ini, kolom tersebut tidak akan ditampilkan dalam respons.

Kursor

Posisi dalam kumpulan hasil kueri.

Kolom
values[]

Value

Nilai-nilai yang mewakili posisi, dalam urutan kemunculannya dalam urutan menurut klausa di kueri.

Dapat berisi lebih sedikit nilai dari yang ditentukan dalam urutan berdasarkan klausa.

before

bool

Jika posisinya tepat sebelum atau setelah nilai yang diberikan, relatif terhadap tata urutan yang ditentukan oleh kueri.

DeleteDocumentRequest

Permintaan untuk Firestore.DeleteDocument.

Kolom
name

string

Wajib. Nama resource Dokumen yang akan dihapus. Dalam format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

current_document

Precondition

Prasyarat opsional pada dokumen. Permintaan akan gagal jika hal ini ditetapkan dan tidak dipenuhi oleh dokumen target.

Dokumen

Dokumen Firestore.

Tidak boleh melebihi 1 MiB - 4 byte.

Kolom
name

string

Nama resource dokumen, misalnya projects/{project_id}/databases/{database_id}/documents/{document_path}.

fields

map<string, Value>

create_time

Timestamp

Hanya output. Waktu saat dokumen dibuat.

Nilai ini meningkat secara monoton saat dokumen dihapus lalu dibuat ulang. Nilai ini juga dapat dibandingkan dengan nilai dari dokumen lain dan read_time kueri.

update_time

Timestamp

Hanya output. Waktu saat dokumen terakhir diubah.

Nilai ini awalnya ditetapkan ke create_time, lalu meningkat secara monoton dengan setiap perubahan pada dokumen. Nilai ini juga dapat dibandingkan dengan nilai dari dokumen lain dan read_time kueri.

DocumentChange

Document telah berubah.

Mungkin merupakan hasil dari beberapa writes, termasuk penghapusan, yang pada akhirnya menghasilkan nilai baru untuk Document.

Beberapa pesan DocumentChange dapat ditampilkan untuk perubahan logis yang sama, jika beberapa target terpengaruh.

Kolom
document

Document

Status baru Document.

Jika mask ditetapkan, hanya akan berisi kolom yang diperbarui atau ditambahkan.

target_ids[]

int32

Kumpulan ID target target yang cocok dengan dokumen ini.

removed_target_ids[]

int32

Kumpulan ID target untuk target yang tidak lagi cocok dengan dokumen ini.

DocumentDelete

Document telah dihapus.

Mungkin disebabkan oleh beberapa writes, termasuk pembaruan, yang terakhir di antaranya menghapus Document.

Beberapa pesan DocumentDelete dapat ditampilkan untuk penghapusan logis yang sama, jika beberapa target terpengaruh.

Kolom
document

string

Nama resource Document yang dihapus.

removed_target_ids[]

int32

Kumpulan ID target untuk target yang sebelumnya cocok dengan entitas ini.

read_time

Timestamp

Stempel waktu operasi baca saat penghapusan diamati.

Lebih besar atau sama dengan commit_time penghapusan.

DocumentMask

Kumpulan jalur kolom pada dokumen. Digunakan untuk membatasi operasi dapatkan atau update pada dokumen ke sebagian kolomnya. Hal ini berbeda dengan mask kolom standar, karena selalu tercakup ke Document, dan mempertimbangkan sifat dinamis Value.

Kolom
field_paths[]

string

Daftar jalur kolom pada mask. Lihat Document.fields untuk mengetahui referensi sintaksis jalur kolom.

DocumentRemove

Document telah dihapus dari tampilan target.

Dikirim jika dokumen tidak lagi relevan dengan target dan tidak terlihat. Dapat dikirim sebagai pengganti DocumentDelete atau DocumentChange jika server tidak dapat mengirim nilai baru dokumen.

Jika beberapa target terpengaruh, beberapa pesan DocumentRemove dapat ditampilkan untuk penulisan atau penghapusan logis yang sama.

Kolom
document

string

Nama resource Document yang sudah tidak terlihat.

removed_target_ids[]

int32

Kumpulan ID target untuk target yang sebelumnya cocok dengan dokumen ini.

read_time

Timestamp

Stempel waktu operasi baca saat penghapusan diamati.

Lebih besar atau sama dengan commit_time perubahan/hapus/hapus.

DocumentTransform

Transformasi dokumen.

Kolom
document

string

Nama dokumen yang akan diubah.

field_transforms[]

FieldTransform

Daftar transformasi yang akan diterapkan ke kolom dokumen secara berurutan. Wajib diisi.

FieldTransform

Transformasi kolom dokumen.

Kolom
field_path

string

Jalur kolom. Lihat Document.fields untuk mengetahui referensi sintaksis jalur kolom.

Kolom union transform_type. Transformasi yang akan diterapkan pada kolom. transform_type hanya ada berupa salah satu diantara berikut:
set_to_server_value

ServerValue

Menetapkan kolom ke nilai server yang ditentukan.

increment

Value

Menambahkan nilai yang diberikan ke nilai kolom saat ini.

Nilai ini harus berupa bilangan bulat atau nilai ganda. Jika kolom bukan bilangan bulat atau ganda, atau jika kolom belum ada, transformasi akan menetapkan kolom ke nilai yang diberikan. Jika salah satu nilai yang diberikan atau nilai kolom saat ini bernilai ganda, kedua nilai akan ditafsirkan sebagai ganda. Aritmatika ganda dan representasi nilai ganda mengikuti semantik IEEE 754. Jika ada luapan bilangan bulat positif/negatif, bidang akan diselesaikan ke bilangan bulat positif/negatif terbesar.

maximum

Value

Menetapkan kolom ke nilai maksimum saat ini dan nilai yang diberikan.

Nilai ini harus berupa bilangan bulat atau nilai ganda. Jika kolom bukan bilangan bulat atau ganda, atau jika kolom belum ada, transformasi akan menetapkan kolom ke nilai yang diberikan. Jika operasi maksimum diterapkan dengan kolom dan nilai input berjenis campuran (yaitu - satu adalah integer dan satu lagi adalah ganda), kolom akan menggunakan jenis operand yang lebih besar. Jika operand setara (mis. 3 dan 3.0), kolom tidak akan berubah. 0, 0,0, dan -0,0 semuanya bernilai nol. Nilai maksimum dari nilai tersimpan dan nilai input nol selalu merupakan nilai yang disimpan. Nilai numerik maksimum x dan NaN adalah NaN.

minimum

Value

Menetapkan kolom ke nilai minimum saat ini dan nilai yang diberikan.

Nilai ini harus berupa bilangan bulat atau nilai ganda. Jika kolom bukan bilangan bulat atau ganda, atau jika kolom belum ada, transformasi akan menetapkan kolom ke nilai input. Jika operasi minimum diterapkan dengan kolom dan nilai input berjenis campuran (yaitu - satu adalah integer dan satu lagi adalah ganda), kolom akan menggunakan jenis operand yang lebih kecil. Jika operand setara (mis. 3 dan 3.0), kolom tidak akan berubah. 0, 0,0, dan -0,0 semuanya bernilai nol. Nilai minimum dari nilai tersimpan dan nilai input nol selalu merupakan nilai yang disimpan. Nilai minimum dari nilai numerik x dan NaN adalah NaN.

append_missing_elements

ArrayValue

Menambahkan elemen yang ditentukan secara berurutan jika belum ada di nilai kolom saat ini. Jika kolom tersebut bukan array, atau jika kolom belum ada, kolom tersebut akan ditetapkan ke array kosong terlebih dahulu.

Angka yang setara dari jenis yang berbeda (misalnya 3L dan 3,0) dianggap sama saat memeriksa apakah ada nilai yang hilang. NaN sama dengan NaN, dan {i>Null<i} sama dengan {i>Null<i}. Jika input berisi beberapa nilai setara, hanya nilai pertama yang akan dipertimbangkan.

transform_result yang sesuai akan menjadi nilai null.

remove_all_from_array

ArrayValue

Menghapus semua elemen yang diberikan dari array dalam kolom. Jika kolom tersebut bukan array, atau jika kolom belum ada, kolom ini akan disetel ke array kosong.

Jumlah yang setara dari jenis yang berbeda (mis. 3L dan 3,0) dianggap sama ketika memutuskan apakah suatu elemen harus dihapus. NaN sama dengan NaN, dan {i>Null<i} sama dengan {i>Null<i}. Tindakan ini akan menghapus semua nilai yang setara jika ada duplikat.

transform_result yang sesuai akan menjadi nilai null.

ServerValue

Nilai yang dihitung oleh server.

Enum
SERVER_VALUE_UNSPECIFIED Tidak ditentukan. Nilai ini tidak boleh digunakan.
REQUEST_TIME Waktu saat server memproses permintaan, dengan presisi milidetik. Jika digunakan di beberapa kolom (dokumen yang sama atau berbeda) dalam sebuah transaksi, semua kolom akan mendapatkan stempel waktu server yang sama.

ExecutionStats

Statistik eksekusi untuk kueri.

Kolom
results_returned

int64

Total jumlah hasil yang ditampilkan, termasuk dokumen, proyeksi, hasil agregasi, dan kunci.

execution_duration

Duration

Total waktu untuk menjalankan kueri di backend.

read_operations

int64

Total operasi baca yang dapat ditagih.

debug_stats

Struct

Statistik proses debug dari eksekusi kueri. Perlu diperhatikan bahwa statistik proses debug dapat berubah seiring perkembangan Firestore. It could include: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

Ringkasan semua dokumen yang sesuai dengan target yang diberikan.

Kolom
target_id

int32

ID target tempat filter ini diterapkan.

count

int32

Jumlah total dokumen yang cocok dengan target_id.

Jika berbeda dari jumlah dokumen dalam klien yang cocok, klien harus secara manual menentukan dokumen mana yang tidak lagi sesuai dengan target.

Klien dapat menggunakan filter bloom unchanged_names untuk membantu penentuan ini dengan menguji SEMUA nama dokumen terhadap filter; jika nama dokumen TIDAK ada dalam filter, artinya dokumen tidak lagi cocok dengan target.

unchanged_names

BloomFilter

Filter bloom yang, apa pun namanya, berisi encoding byte UTF-8 dari nama resource SEMUA dokumen yang cocok dengan target_id, dalam format projects/{project_id}/databases/{database_id}/documents/{document_path}.

Filter bloom ini dapat dihilangkan atas diskresi server, seperti jika dianggap bahwa klien tidak akan memanfaatkannya atau jika terlalu mahal secara komputasi untuk dihitung atau dikirim. Klien harus dengan baik menangani kolom ini yang tidak ada dengan kembali ke logika yang digunakan sebelum kolom ini ada; yaitu, menambahkan kembali target tanpa token resume untuk mencari tahu dokumen mana dalam cache klien yang tidak sinkron.

ExplainMetrics

Menjelaskan metrik untuk kueri.

Kolom
plan_summary

PlanSummary

Informasi fase perencanaan untuk kueri.

execution_stats

ExecutionStats

Statistik gabungan dari eksekusi kueri. Hanya ada jika ExplainOptions.analyze disetel ke benar (true).

ExplainOptions

Menjelaskan opsi untuk kueri tersebut.

Kolom
analyze

bool

Opsional. Apakah akan mengeksekusi kueri ini.

Jika false (default), kueri akan direncanakan, yang hanya menampilkan metrik dari tahap perencanaan.

Jika true (benar), kueri akan direncanakan dan dieksekusi, yang menampilkan hasil kueri lengkap beserta metrik tahap perencanaan dan eksekusi.

GetDocumentRequest

Permintaan untuk Firestore.GetDocument.

Kolom
name

string

Wajib. Nama resource Dokumen yang akan didapatkan. Dalam format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

mask

DocumentMask

Kolom yang akan ditampilkan. Jika tidak ditetapkan, semua kolom akan ditampilkan.

Jika dokumen memiliki kolom yang tidak ada dalam mask ini, kolom tersebut tidak akan ditampilkan dalam respons.

Kolom union consistency_selector. Mode konsistensi untuk transaksi ini. Jika tidak disetel, setelan default-nya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
transaction

bytes

Membaca dokumen dalam transaksi.

read_time

Timestamp

Membaca versi dokumen pada waktu tertentu.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, dapat juga berupa stempel waktu menit penuh dalam 7 hari terakhir.

ListCollectionIdsRequest

Permintaan untuk Firestore.ListCollectionIds.

Kolom
parent

string

Wajib. Dokumen induk. Dalam format: projects/{project_id}/databases/{database_id}/documents/{document_path}. Misalnya: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom.

page_size

int32

Jumlah hasil maksimum yang akan ditampilkan.

page_token

string

Token halaman. Harus berupa nilai dari ListCollectionIdsResponse.

Kolom union consistency_selector. Mode konsistensi untuk permintaan ini. Jika tidak disetel, setelan default-nya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
read_time

Timestamp

Membaca dokumen sebagaimana adanya pada waktu yang ditentukan.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, dapat juga berupa stempel waktu menit penuh dalam 7 hari terakhir.

ListCollectionIdsResponse

Respons dari Firestore.ListCollectionIds.

Kolom
collection_ids[]

string

ID koleksi.

next_page_token

string

Token halaman yang dapat digunakan untuk melanjutkan daftar.

ListDocumentsRequest

Permintaan untuk Firestore.ListDocuments.

Kolom
parent

string

Wajib. Nama resource induk. Dalam format: projects/{project_id}/databases/{database_id}/documents atau projects/{project_id}/databases/{database_id}/documents/{document_path}.

Misalnya: projects/my-project/databases/my-database/documents atau projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

Opsional. ID koleksi, yang terkait dengan parent, ke daftar.

Misalnya: chatrooms atau messages.

Hal ini bersifat opsional. Jika tidak disediakan, Firestore akan mencantumkan dokumen dari semua koleksi pada parent yang disediakan.

page_size

int32

Opsional. Jumlah maksimum dokumen yang akan ditampilkan dalam satu respons.

Firestore mungkin menampilkan lebih sedikit dari nilai ini.

page_token

string

Opsional. Token halaman, diterima dari respons ListDocuments sebelumnya.

Berikan ini untuk mengambil halaman berikutnya. Saat melakukan penomoran halaman, semua parameter lainnya (kecuali page_size) harus cocok dengan nilai yang ditetapkan dalam permintaan yang membuat token halaman.

order_by

string

Opsional. Urutan opsional dokumen yang akan ditampilkan.

Misalnya: priority desc, __name__ desc.

Ini mencerminkan ORDER BY yang digunakan dalam kueri Firestore, tetapi dalam representasi string. Jika tidak ada, dokumen akan diurutkan berdasarkan __name__ ASC.

mask

DocumentMask

Opsional. Kolom yang akan ditampilkan. Jika tidak ditetapkan, semua kolom akan ditampilkan.

Jika dokumen memiliki kolom yang tidak ada dalam mask ini, kolom tersebut tidak akan ditampilkan dalam respons.

show_missing

bool

Apakah daftar akan menampilkan dokumen yang tidak ada.

Dokumen hilang jika tidak ada, tetapi ada sub-dokumen yang disusun bertingkat di bawahnya. Jika benar (true), dokumen yang hilang tersebut akan ditampilkan dengan kunci, tetapi tidak akan memiliki kolom, create_time, atau update_time yang ditetapkan.

Permintaan dengan show_missing tidak boleh menentukan where atau order_by.

Kolom union consistency_selector. Mode konsistensi untuk transaksi ini. Jika tidak disetel, setelan default-nya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
transaction

bytes

Lakukan operasi baca sebagai bagian dari transaksi yang sudah aktif.

read_time

Timestamp

Melakukan pembacaan pada waktu yang disediakan.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, dapat juga berupa stempel waktu menit penuh dalam 7 hari terakhir.

ListDocumentsResponse

Respons untuk Firestore.ListDocuments.

Kolom
documents[]

Document

Dokumen ditemukan.

next_page_token

string

Token untuk mengambil halaman dokumen berikutnya.

Jika kolom ini dihilangkan, tidak akan ada halaman berikutnya.

ListenRequest

Permintaan untuk Firestore.Listen

Kolom
database

string

Wajib. Nama database. Dalam format: projects/{project_id}/databases/{database_id}.

labels

map<string, string>

Label yang terkait dengan perubahan target ini.

Kolom union target_change. Perubahan target yang didukung. target_change hanya ada berupa salah satu diantara berikut:
add_target

Target

Target untuk ditambahkan ke streaming ini.

remove_target

int32

ID target yang akan dihapus dari aliran data ini.

ListenResponse

Respons untuk Firestore.Listen.

Kolom
Kolom union response_type. Respons yang didukung. response_type hanya ada berupa salah satu diantara berikut:
target_change

TargetChange

Target telah berubah.

document_change

DocumentChange

Document telah berubah.

document_delete

DocumentDelete

Document telah dihapus.

document_remove

DocumentRemove

Document telah dihapus dari target (karena tidak lagi relevan dengan target tersebut).

filter

ExistenceFilter

Filter yang akan diterapkan ke kumpulan dokumen yang sebelumnya ditampilkan untuk target tertentu.

Ditampilkan saat dokumen mungkin telah dihapus dari target yang diberikan, tetapi dokumen persisnya tidak diketahui.

MapValue

Nilai peta.

Kolom
fields

map<string, Value>

Kolom peta.

Kunci peta mewakili nama kolom. Nama kolom yang cocok dengan ekspresi reguler __.*__ dicadangkan. Nama kolom yang dicadangkan dilarang kecuali dalam konteks terdokumentasi tertentu. Kunci peta, yang direpresentasikan sebagai UTF-8, tidak boleh melebihi 1.500 byte dan tidak boleh kosong.

PartitionQueryRequest

Permintaan untuk Firestore.PartitionQuery.

Kolom
parent

string

Wajib. Nama resource induk. Dalam format: projects/{project_id}/databases/{database_id}/documents. Nama resource dokumen tidak didukung; hanya nama resource database yang dapat ditetapkan.

partition_count

int64

Jumlah titik partisi maksimum yang diinginkan. Partisi dapat ditampilkan di beberapa halaman hasil. Angkanya harus positif. Jumlah partisi sebenarnya yang ditampilkan mungkin lebih sedikit.

Misalnya, nilai ini dapat disetel menjadi kurang dari jumlah kueri paralel yang akan dijalankan, atau dalam menjalankan tugas pipeline data, jumlahnya lebih sedikit dari jumlah pekerja atau instance komputasi yang tersedia.

page_token

string

Nilai next_page_token yang ditampilkan dari panggilan sebelumnya ke PartitionQuery yang dapat digunakan untuk mendapatkan kumpulan hasil tambahan. Tidak ada jaminan pengurutan di antara kumpulan hasil. Dengan demikian, menggunakan beberapa set hasil akan memerlukan penggabungan set hasil yang berbeda.

Misalnya, dua panggilan berikutnya yang menggunakan page_token dapat menampilkan:

  • kursor B, kursor M, kursor Q
  • kursor A, kursor U, kursor W

Untuk memperoleh kumpulan hasil lengkap yang diurutkan sehubungan dengan hasil kueri yang diberikan ke PartitionQuery, kumpulan hasil tersebut harus digabungkan: cursor A, cursor B, cursor M, cursor Q, cursor U, cursor W

page_size

int32

Jumlah partisi maksimum untuk ditampilkan dalam panggilan ini, tunduk pada partition_count.

Misalnya, jika partition_count = 10 dan page_size = 8, panggilan pertama ke PartitionQuery akan menampilkan hingga 8 partisi dan next_page_token jika ada hasil lainnya. Panggilan kedua ke PartitionQuery akan menampilkan hingga 2 partisi, untuk menyelesaikan total 10 partisi yang ditentukan di partition_count.

Kolom union query_type. Kueri untuk mempartisi. query_type hanya ada berupa salah satu diantara berikut:
structured_query

StructuredQuery

Kueri terstruktur. Kueri harus menentukan koleksi dengan semua turunan dan diurutkan berdasarkan nama menaik. Filter, urutan menurut, batas, offset, dan kursor awal/akhir lainnya tidak didukung.

Kolom union consistency_selector. Mode konsistensi untuk permintaan ini. Jika tidak disetel, setelan default-nya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
read_time

Timestamp

Membaca dokumen sebagaimana adanya pada waktu yang ditentukan.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, dapat juga berupa stempel waktu menit penuh dalam 7 hari terakhir.

PartitionQueryResponse

Respons untuk Firestore.PartitionQuery.

Kolom
partitions[]

Cursor

Hasil partisi. Setiap partisi adalah titik pemisahan yang dapat digunakan oleh RunQuery sebagai titik awal atau akhir untuk hasil kueri. Permintaan RunQuery harus dibuat dengan kueri yang sama dengan yang diberikan pada permintaan PartitionQuery ini. Kursor partisi akan diurutkan sesuai dengan urutan yang sama dengan hasil kueri yang diberikan ke PartitionQuery.

Misalnya, jika permintaan PartitionQuery menampilkan kursor partisi A dan B, menjalankan tiga kueri berikut akan menampilkan seluruh kumpulan hasil kueri asli:

  • kueri, {i>end_at<i} A
  • kueri, start_at A, end_at B
  • kueri, start_at B

Hasil kosong dapat menunjukkan bahwa kueri memiliki hasil yang terlalu sedikit untuk dipartisi, atau kueri belum didukung untuk partisi.

next_page_token

string

Token halaman yang dapat digunakan untuk meminta serangkaian hasil tambahan, hingga jumlah yang ditentukan oleh partition_count dalam permintaan PartitionQuery. Jika kosong, tidak ada hasil lagi.

PlanSummary

Informasi fase perencanaan untuk kueri.

Kolom
indexes_used[]

Struct

Indeks yang dipilih untuk kueri. For example: [ {"query_scope": "Collection", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, name ASC)"} ]

Precondition

Prasyarat pada dokumen, digunakan untuk operasi bersyarat.

Kolom
Kolom union condition_type. Jenis prasyarat. condition_type hanya ada berupa salah satu diantara berikut:
exists

bool

Jika ditetapkan ke true, dokumen target harus ada. Jika ditetapkan ke false, dokumen target tidak boleh ada.

update_time

Timestamp

Jika ditetapkan, dokumen target harus ada dan terakhir diperbarui pada saat itu. Stempel waktu harus selaras dalam mikrodetik.

RollbackRequest

Permintaan untuk Firestore.Rollback.

Kolom
database

string

Wajib. Nama database. Dalam format: projects/{project_id}/databases/{database_id}.

transaction

bytes

Wajib. Transaksi yang akan di-roll back.

RunAggregationQueryRequest

Permintaan untuk Firestore.RunAggregationQuery.

Kolom
parent

string

Wajib. Nama resource induk. Dalam format: projects/{project_id}/databases/{database_id}/documents atau projects/{project_id}/databases/{database_id}/documents/{document_path}. Contoh: projects/my-project/databases/my-database/documents atau projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

Opsional. Menjelaskan opsi untuk kueri tersebut. Jika ditetapkan, statistik kueri tambahan akan ditampilkan. Jika tidak, hanya hasil kueri yang akan ditampilkan.

Kolom union query_type. Kueri yang akan dijalankan. query_type hanya ada berupa salah satu diantara berikut:
structured_aggregation_query

StructuredAggregationQuery

Kueri agregasi.

Kolom union consistency_selector. Mode konsistensi untuk kueri secara default disetel ke konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
transaction

bytes

Jalankan agregasi dalam transaksi yang sudah aktif.

Nilai di sini adalah ID transaksi buram untuk mengeksekusi kueri.

new_transaction

TransactionOptions

Memulai transaksi baru sebagai bagian dari kueri, yang setelan defaultnya adalah hanya baca.

ID transaksi baru akan ditampilkan sebagai respons pertama dalam aliran data.

read_time

Timestamp

Mengeksekusi kueri pada stempel waktu yang ditentukan.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, dapat juga berupa stempel waktu menit penuh dalam 7 hari terakhir.

RunAggregationQueryResponse

Respons untuk Firestore.RunAggregationQuery.

Kolom
result

AggregationResult

Hasil agregasi tunggal.

Tidak ada saat melaporkan progres sebagian.

transaction

bytes

Transaksi yang dimulai sebagai bagian dari permintaan ini.

Hanya ada di respons pertama saat permintaan meminta untuk memulai transaksi baru.

read_time

Timestamp

Waktu saat hasil agregat dihitung. Hal ini selalu meningkat secara monoton; dalam hal ini, AggregationResult sebelumnya di aliran hasil dijamin tidak berubah antara read_time dan yang ini.

Jika kueri tidak menampilkan hasil, respons dengan read_time dan tidak ada result akan dikirim, dan ini menunjukkan waktu kueri dijalankan.

explain_metrics

ExplainMetrics

Mengkueri metrik. Hal ini hanya ada jika RunAggregationQueryRequest.explain_options disediakan, dan hanya dikirim sekali dengan respons terakhir di dalam aliran data.

RunQueryRequest

Permintaan untuk Firestore.RunQuery.

Kolom
parent

string

Wajib. Nama resource induk. Dalam format: projects/{project_id}/databases/{database_id}/documents atau projects/{project_id}/databases/{database_id}/documents/{document_path}. Contoh: projects/my-project/databases/my-database/documents atau projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

Opsional. Menjelaskan opsi untuk kueri tersebut. Jika ditetapkan, statistik kueri tambahan akan ditampilkan. Jika tidak, hanya hasil kueri yang akan ditampilkan.

Kolom union query_type. Kueri yang akan dijalankan. query_type hanya ada berupa salah satu diantara berikut:
structured_query

StructuredQuery

Kueri terstruktur.

Kolom union consistency_selector. Mode konsistensi untuk transaksi ini. Jika tidak disetel, setelan default-nya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
transaction

bytes

Jalankan kueri dalam transaksi yang sudah aktif.

Nilai di sini adalah ID transaksi buram untuk mengeksekusi kueri.

new_transaction

TransactionOptions

Memulai transaksi baru dan membaca dokumen. Setelan defaultnya adalah transaksi hanya baca. ID transaksi baru akan ditampilkan sebagai respons pertama dalam aliran data.

read_time

Timestamp

Membaca dokumen sebagaimana adanya pada waktu yang ditentukan.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, dapat juga berupa stempel waktu menit penuh dalam 7 hari terakhir.

RunQueryResponse

Respons untuk Firestore.RunQuery.

Kolom
transaction

bytes

Transaksi yang dimulai sebagai bagian dari permintaan ini. Hanya dapat ditetapkan dalam respons pertama, dan hanya jika RunQueryRequest.new_transaction ditetapkan dalam permintaan. Jika ditetapkan, tidak ada kolom lain yang akan ditetapkan dalam respons ini.

document

Document

Hasil kueri, tidak disetel saat melaporkan progres sebagian.

read_time

Timestamp

Waktu saat dokumen dibaca. Jumlah ini mungkin meningkat secara monoton; dalam kasus ini, dokumen sebelumnya dalam aliran hasil dijamin tidak berubah antara read_time dan dokumen ini.

Jika kueri tidak menampilkan hasil, respons dengan read_time dan tidak ada document akan dikirim, dan ini menunjukkan waktu kueri dijalankan.

skipped_results

int32

Jumlah hasil yang dilewati karena adanya offset antara respons terakhir dan respons saat ini.

explain_metrics

ExplainMetrics

Mengkueri metrik. Hal ini hanya ada jika RunQueryRequest.explain_options disediakan, dan hanya dikirim sekali dengan respons terakhir di dalam aliran data.

Kolom union continuation_selector. Mode kelanjutan untuk kueri. Jika ada, ini menunjukkan bahwa streaming respons kueri saat ini telah selesai. Kolom ini dapat ditetapkan dengan atau tanpa adanya document, tetapi jika ditetapkan, tidak ada hasil lagi yang ditampilkan. continuation_selector hanya dapat berupa salah satu dari yang berikut:
done

bool

Jika ada, berarti Firestore telah menyelesaikan permintaan sepenuhnya dan tidak ada lagi dokumen yang akan ditampilkan.

StructuredAggregationQuery

Kueri Firestore untuk menjalankan agregasi pada StructuredQuery.

Kolom
aggregations[]

Aggregation

Opsional. Serangkaian agregasi yang akan diterapkan pada hasil structured_query.

Memerlukan:

  • Minimal satu dan maksimum lima agregasi per kueri.
Kolom union query_type. Kueri dasar yang akan digabungkan. query_type hanya ada berupa salah satu diantara berikut:
structured_query

StructuredQuery

Kueri terstruktur bertingkat.

Agregasi

Menentukan agregasi yang menghasilkan satu hasil.

Kolom
alias

string

Opsional. Nama opsional kolom untuk menyimpan hasil agregasi.

Jika tidak diberikan, Firestore akan memilih nama default dengan mengikuti format field_<incremental_id++>. Contoh:

AGGREGATE
  COUNT_UP_TO(1) AS count_up_to_1,
  COUNT_UP_TO(2),
  COUNT_UP_TO(3) AS count_up_to_3,
  COUNT(*)
OVER (
  ...
);

menjadi:

AGGREGATE
  COUNT_UP_TO(1) AS count_up_to_1,
  COUNT_UP_TO(2) AS field_1,
  COUNT_UP_TO(3) AS count_up_to_3,
  COUNT(*) AS field_2
OVER (
  ...
);

Memerlukan:

Kolom union operator. Jenis agregasi yang akan dilakukan, diperlukan. operator hanya ada berupa salah satu diantara berikut:
count

Count

Agregator jumlah.

sum

Sum

Agregator jumlah.

avg

Avg

Agregator rata-rata.

Avg

Rata-rata nilai kolom yang diminta.

  • Hanya nilai numerik yang akan diagregasi. Semua nilai non-numerik termasuk NULL akan dilewati.

  • Jika nilai gabungan berisi NaN, tampilkan NaN. Matematika tak terbatas mengikuti standar IEEE-754.

  • Jika kumpulan nilai gabungan kosong, tampilkan NULL.

  • Selalu tampilkan hasilnya sebagai ganda.

Kolom
field

FieldReference

Kolom yang akan digabungkan.

Jumlah

Jumlah dokumen yang cocok dengan kueri.

Fungsi agregasi COUNT(*) beroperasi di seluruh dokumen sehingga tidak memerlukan referensi kolom.

Kolom
up_to

Int64Value

Opsional. Batasan opsional pada jumlah maksimum dokumen yang akan dihitung.

Cara ini menyediakan cara untuk menetapkan batas atas jumlah dokumen yang akan dipindai, membatasi latensi, dan biaya.

Tidak ditentukan ditafsirkan sebagai tanpa ikatan.

Contoh Tingkat Tinggi:

AGGREGATE COUNT_UP_TO(1000) OVER ( SELECT * FROM k );

Memerlukan:

  • Harus lebih besar dari nol saat ada.

Total

Jumlah nilai kolom yang diminta.

  • Hanya nilai numerik yang akan diagregasi. Semua nilai non-numerik termasuk NULL akan dilewati.

  • Jika nilai gabungan berisi NaN, tampilkan NaN. Matematika tak terbatas mengikuti standar IEEE-754.

  • Jika kumpulan nilai gabungan kosong, nilai yang ditampilkan adalah 0.

  • Menampilkan bilangan bulat 64-bit jika semua angka gabungan adalah bilangan bulat dan hasil jumlah tidak meluap. Jika tidak, hasilnya ditampilkan sebagai ganda. Perhatikan bahwa meskipun semua nilai gabungan adalah bilangan bulat, hasilnya akan ditampilkan sebagai ganda jika tidak bisa muat dalam bilangan bulat 64-bit yang telah ditandai. Jika hal ini terjadi, nilai yang ditampilkan akan kehilangan presisi.

  • Jika terjadi underflow, agregasi floating point bersifat non-deterministik. Ini berarti, menjalankan kueri yang sama berulang kali tanpa perubahan apa pun pada nilai yang mendasarinya dapat memberikan hasil yang sedikit berbeda setiap waktu. Dalam kasus tersebut, nilai harus disimpan sebagai bilangan bulat di atas angka floating point.

Kolom
field

FieldReference

Kolom yang akan digabungkan.

StructuredQuery

Kueri Firestore.

Kolom
select

Projection

Subkumpulan kolom opsional yang akan ditampilkan.

Hal ini bertindak sebagai DocumentMask atas dokumen yang ditampilkan dari kueri. Jika tidak ditetapkan, asumsikan bahwa pemanggil ingin semua kolom ditampilkan.

from[]

CollectionSelector

Koleksi yang akan dikueri.

where

Filter

Filter yang akan diterapkan.

order_by[]

Order

Urutan yang akan diterapkan ke hasil kueri.

Firestore memungkinkan pemanggil untuk menyediakan pemesanan lengkap, pemesanan parsial, atau tidak ada pemesanan sama sekali. Dalam semua kasus, Firestore menjamin pengurutan yang stabil melalui aturan berikut:

  • order_by diperlukan untuk mereferensikan semua kolom yang digunakan dengan filter ketidaksetaraan.
  • Semua kolom yang wajib ada di order_by, tetapi belum ada, akan ditambahkan dalam urutan leksikografis nama kolom.
  • Jika pesanan pada __name__ tidak ditentukan, pesanan tersebut akan ditambahkan secara default.

Kolom ditambahkan dengan arah pengurutan yang sama seperti urutan terakhir yang ditentukan, atau 'ASCENDING' jika tidak ada urutan yang ditentukan. Contoh:

  • ORDER BY a menjadi ORDER BY a ASC, __name__ ASC
  • ORDER BY a DESC menjadi ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 menjadi WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 menjadi WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
start_at

Cursor

Awalan potensial dari posisi dalam kumpulan hasil untuk memulai kueri.

Urutan kumpulan hasil didasarkan pada klausa ORDER BY dari kueri asli.

SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;

Hasil kueri ini diurutkan berdasarkan (b ASC, __name__ ASC).

Kursor dapat merujuk ke urutan lengkap atau awalan lokasi, meskipun tidak dapat merujuk lebih banyak kolom daripada yang ada di ORDER BY yang disediakan.

Melanjutkan contoh di atas, melampirkan kursor awal berikut akan memiliki dampak yang berbeda:

  • START BEFORE (2, /k/123): mulai kueri tepat sebelum a = 1 AND b > 2 AND __name__ > /k/123.
  • START AFTER (10): mulai kueri tepat setelah a = 1 AND b > 10.

Tidak seperti OFFSET yang mengharuskan pemindaian hasil N pertama untuk dilewati, kursor awal memungkinkan kueri dimulai pada posisi logis. Posisi ini tidak harus sesuai dengan hasil sebenarnya, karena akan memindai maju dari posisi ini untuk menemukan dokumen berikutnya.

Memerlukan:

  • Jumlah nilai tidak boleh lebih besar dari jumlah kolom yang ditentukan dalam klausa ORDER BY.
end_at

Cursor

Awalan potensial dari posisi dalam hasil yang ditetapkan untuk mengakhiri kueri.

Ini mirip dengan START_AT tetapi dengan fungsi ini mengontrol posisi akhir, bukan posisi awal.

Memerlukan:

  • Jumlah nilai tidak boleh lebih besar dari jumlah kolom yang ditentukan dalam klausa ORDER BY.
offset

int32

Jumlah dokumen yang harus dilewati sebelum menampilkan hasil pertama.

Ini berlaku setelah batasan yang ditentukan oleh WHERE, START AT & END AT tetapi sebelum klausa LIMIT.

Memerlukan:

  • Nilai harus lebih besar atau sama dengan nol jika ditentukan.
limit

Int32Value

Jumlah hasil maksimum yang akan ditampilkan.

Berlaku setelah semua batasan lainnya.

Memerlukan:

  • Nilai harus lebih besar atau sama dengan nol jika ditentukan.

CollectionSelector

Pilihan koleksi, seperti messages as m1.

Kolom
collection_id

string

ID koleksi. Jika ditetapkan, hanya akan memilih koleksi dengan ID ini.

all_descendants

bool

Jika salah, hanya memilih koleksi yang merupakan turunan langsung dari parent yang ditentukan dalam RunQueryRequest yang memuatnya. Jika true (benar), akan memilih semua koleksi turunan.

CompositeFilter

Filter yang menggabungkan beberapa filter lain menggunakan operator yang diberikan.

Kolom
op

Operator

Operator untuk menggabungkan beberapa filter.

filters[]

Filter

Daftar filter untuk digabungkan.

Memerlukan:

  • Setidaknya satu filter tersedia.

Operator

Operator filter gabungan.

Enum
OPERATOR_UNSPECIFIED Tidak ditentukan. Nilai ini tidak boleh digunakan.
AND Dokumen diperlukan untuk memenuhi semua filter gabungan.
OR Dokumen diperlukan untuk memenuhi setidaknya salah satu filter gabungan.

Arah

Arah pengurutan.

Enum
DIRECTION_UNSPECIFIED Tidak ditentukan.
ASCENDING Menaik.
DESCENDING Menurun.

FieldFilter

Filter pada kolom tertentu.

Kolom
field

FieldReference

Kolom yang akan digunakan untuk memfilter.

op

Operator

Operator yang akan digunakan untuk memfilter.

value

Value

Nilai yang akan dibandingkan.

Operator

Operator filter kolom.

Enum
OPERATOR_UNSPECIFIED Tidak ditentukan. Nilai ini tidak boleh digunakan.
LESS_THAN

field yang diberikan lebih kecil dari value yang diberikan.

Memerlukan:

  • field itu muncul di urutan pertama di order_by.
LESS_THAN_OR_EQUAL

field yang ditentukan lebih kecil dari atau sama dengan value yang diberikan.

Memerlukan:

  • field itu muncul di urutan pertama di order_by.
GREATER_THAN

field yang diberikan lebih besar dari value yang diberikan.

Memerlukan:

  • field itu muncul di urutan pertama di order_by.
GREATER_THAN_OR_EQUAL

field yang ditentukan lebih besar dari atau sama dengan value yang diberikan.

Memerlukan:

  • field itu muncul di urutan pertama di order_by.
EQUAL field yang diberikan sama dengan value yang ditentukan.
NOT_EQUAL

field yang diberikan tidak sama dengan value yang diberikan.

Memerlukan:

  • Tidak ada NOT_EQUAL, NOT_IN, IS_NOT_NULL, atau IS_NOT_NAN lainnya.
  • field tersebut muncul di urutan pertama di order_by.
ARRAY_CONTAINS field yang diberikan adalah array yang berisi value yang diberikan.
IN

field yang diberikan sama dengan setidaknya satu nilai dalam array yang diberikan.

Memerlukan:

  • value tersebut adalah ArrayValue yang tidak kosong, yang tunduk pada batas disjungsi.
  • Tidak ada NOT_IN filter dalam kueri yang sama.
ARRAY_CONTAINS_ANY

field yang diberikan adalah array yang berisi salah satu nilai dalam array yang diberikan.

Memerlukan:

  • value tersebut adalah ArrayValue yang tidak kosong, yang tunduk pada batas disjungsi.
  • Tidak ada filter ARRAY_CONTAINS_ANY lain dalam disjungsi yang sama.
  • Tidak ada NOT_IN filter dalam kueri yang sama.
NOT_IN

Nilai field tidak ada dalam array yang diberikan.

Memerlukan:

  • value tersebut adalah ArrayValue yang tidak kosong dengan maksimal 10 nilai.
  • Bukan OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL, atau IS_NOT_NAN lainnya.
  • field tersebut muncul di urutan pertama di order_by.

FieldReference

Referensi ke kolom dalam dokumen, misalnya: stats.operations.

Kolom
field_path

string

Referensi ke kolom dalam dokumen.

Memerlukan:

  • HARUS berupa string segmen yang dipisahkan titik (.), dengan setiap segmen sesuai dengan batasan document field name.

Filter

Sebuah filter.

Kolom
Kolom union filter_type. Jenis filter. filter_type hanya ada berupa salah satu diantara berikut:
composite_filter

CompositeFilter

Filter gabungan.

field_filter

FieldFilter

Filter di kolom dokumen.

unary_filter

UnaryFilter

Filter yang mengambil tepat satu argumen.

Pesan

Pesanan di kolom.

Kolom
field

FieldReference

Kolom untuk mengurutkan.

direction

Direction

Arah pengurutan. Default-nya adalah ASCENDING.

Proyeksi

Proyeksi kolom dokumen yang akan ditampilkan.

Kolom
fields[]

FieldReference

Kolom yang akan ditampilkan.

Jika kosong, semua kolom akan ditampilkan. Untuk menampilkan nama dokumen saja, gunakan ['__name__'].

UnaryFilter

Filter dengan satu operand.

Kolom
op

Operator

Operator unary yang akan diterapkan.

Kolom union operand_type. Argumen untuk filter. operand_type hanya ada berupa salah satu diantara berikut:
field

FieldReference

Kolom tempat operator akan diterapkan.

Operator

Operator unary.

Enum
OPERATOR_UNSPECIFIED Tidak ditentukan. Nilai ini tidak boleh digunakan.
IS_NAN field yang ditentukan sama dengan NaN.
IS_NULL field yang ditentukan sama dengan NULL.
IS_NOT_NAN

field yang ditentukan tidak sama dengan NaN.

Memerlukan:

  • Tidak ada NOT_EQUAL, NOT_IN, IS_NOT_NULL, atau IS_NOT_NAN lainnya.
  • field tersebut muncul di urutan pertama di order_by.
IS_NOT_NULL

field yang ditentukan tidak sama dengan NULL.

Memerlukan:

  • Satu NOT_EQUAL, NOT_IN, IS_NOT_NULL, atau IS_NOT_NAN.
  • field tersebut muncul di urutan pertama di order_by.

Target

Spesifikasi dari kumpulan dokumen yang akan diproses.

Kolom
target_id

int32

ID target yang mengidentifikasi target pada streaming. Harus berupa angka positif dan bukan nol.

Jika target_id adalah 0 (atau tidak ditentukan), server akan menetapkan ID untuk target ini dan menampilkannya dalam peristiwa TargetChange::ADD. Setelah target dengan target_id=0 ditambahkan, semua target berikutnya juga harus memiliki target_id=0. Jika permintaan AddTarget dengan target_id != 0 dikirim ke server setelah target dengan target_id=0 ditambahkan, server akan segera mengirim respons dengan peristiwa TargetChange::Remove.

Perhatikan bahwa jika klien mengirim beberapa permintaan AddTarget tanpa ID, urutan ID yang ditampilkan di TargetChage.target_ids tidak ditentukan. Oleh karena itu, klien harus memberikan ID target, bukan mengandalkan server untuk menetapkannya.

Jika target_id bukan nol, tidak boleh ada target aktif yang sudah ada pada aliran data ini dengan ID yang sama.

once

bool

Apakah target harus dihapus setelah statusnya masih berlaku dan konsisten.

expected_count

Int32Value

Jumlah dokumen yang terakhir cocok dengan kueri pada token resume atau waktu baca.

Nilai ini hanya relevan jika resume_type diberikan. Nilai ini ada dan lebih besar dari nol menandakan bahwa klien ingin ExistenceFilter.unchanged_names disertakan dalam respons.

Kolom union target_type. Jenis target yang akan diproses. target_type hanya ada berupa salah satu diantara berikut:
query

QueryTarget

Target yang ditentukan oleh kueri.

documents

DocumentsTarget

Target yang ditentukan oleh kumpulan nama dokumen.

Kolom union resume_type. Kapan harus mulai mendengarkan.

Jika ditentukan, hanya Dokumen yang cocok yang telah diperbarui SETELAH resume_token atau read_time yang akan ditampilkan. Jika tidak, semua Dokumen yang cocok akan ditampilkan sebelum perubahan berikutnya. resume_type hanya dapat berupa salah satu dari yang berikut:

resume_token

bytes

Token melanjutkan dari TargetChange sebelumnya untuk target yang identik.

Menggunakan token resume dengan target yang berbeda tidak didukung dan bisa gagal.

read_time

Timestamp

Mulai mendengarkan setelah read_time tertentu.

Klien harus mengetahui status dokumen yang cocok pada saat ini.

DocumentsTarget

Target yang ditentukan oleh sekumpulan nama dokumen.

Kolom
documents[]

string

Nama dokumen yang akan diambil. Dalam format: projects/{project_id}/databases/{database_id}/documents/{document_path}. Permintaan akan gagal jika salah satu dokumen bukan merupakan resource turunan dari database yang ditentukan. Nama duplikat akan dihapus.

QueryTarget

Target yang ditentukan oleh kueri.

Kolom
parent

string

Nama resource induk. Dalam format: projects/{project_id}/databases/{database_id}/documents atau projects/{project_id}/databases/{database_id}/documents/{document_path}. Contoh: projects/my-project/databases/my-database/documents atau projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Kolom union query_type. Kueri yang akan dijalankan. query_type hanya ada berupa salah satu diantara berikut:
structured_query

StructuredQuery

Kueri terstruktur.

TargetChange

Target yang ditonton telah berubah.

Kolom
target_change_type

TargetChangeType

Jenis perubahan yang terjadi.

target_ids[]

int32

ID target target yang telah berubah.

Jika kosong, perubahan akan diterapkan ke semua target.

Urutan ID target tidak ditentukan.

cause

Status

Error yang mengakibatkan perubahan ini, jika berlaku.

resume_token

bytes

Token yang dapat digunakan untuk melanjutkan streaming untuk target_ids yang ditentukan, atau semua target jika target_ids kosong.

Tidak ditetapkan pada setiap perubahan target.

read_time

Timestamp

read_time yang konsisten untuk target_ids yang ditentukan (dihapus saat target_ids tidak berada pada snapshot yang konsisten).

Aliran data dijamin akan mengirim read_time dengan target_ids kosong setiap kali seluruh aliran mencapai snapshot baru yang konsisten. Pesan ADD, CURRENT, dan RESET dijamin (pada akhirnya) akan menghasilkan snapshot baru yang konsisten (sementara pesan NO_CHANGE dan REMOVE tidak).

Untuk aliran tertentu, read_time dijamin akan meningkat secara monoton.

TargetChangeType

Jenis perubahan.

Enum
NO_CHANGE Tidak ada perubahan yang terjadi. Digunakan hanya untuk mengirim resume_token yang diperbarui.
ADD Target telah ditambahkan.
REMOVE Target telah dihapus.
CURRENT

Target mencerminkan semua perubahan yang dilakukan sebelum target ditambahkan ke aliran data.

Ini akan dikirim setelah atau dengan read_time yang lebih besar dari atau sama dengan waktu saat target ditambahkan.

Pemroses dapat menunggu perubahan ini jika semantik baca setelah tulis diinginkan.

RESET

Target telah direset, dan status awal baru untuk target akan ditampilkan dalam perubahan berikutnya.

Setelah status awal selesai, CURRENT akan ditampilkan meskipun sebelumnya target ditunjukkan sebagai CURRENT.

TransactionOptions

Opsi untuk membuat transaksi baru.

Kolom
Kolom union mode. Mode transaksi. mode hanya ada berupa salah satu diantara berikut:
read_only

ReadOnly

Transaksi hanya dapat digunakan untuk operasi baca.

read_write

ReadWrite

Transaksi ini dapat digunakan untuk operasi baca dan tulis.

ReadOnly

Opsi untuk transaksi yang hanya dapat digunakan untuk membaca dokumen.

Kolom
Kolom union consistency_selector. Mode konsistensi untuk transaksi ini. Jika tidak disetel, setelan default-nya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
read_time

Timestamp

Membaca dokumen pada waktu tertentu.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, dapat juga berupa stempel waktu menit penuh dalam 7 hari terakhir.

ReadWrite

Opsi untuk transaksi yang dapat digunakan untuk membaca dan menulis dokumen.

Firestore tidak mengizinkan permintaan autentikasi pihak ketiga untuk membuat transaksi baca-tulis.

Kolom
retry_transaction

bytes

Transaksi opsional untuk dicoba lagi.

UpdateDocumentRequest

Permintaan untuk Firestore.UpdateDocument.

Kolom
document

Document

Wajib. Dokumen yang diperbarui. Membuat dokumen jika belum ada.

update_mask

DocumentMask

Kolom yang akan diperbarui. Tidak ada jalur kolom dalam mask yang boleh berisi nama yang dicadangkan.

Jika dokumen ada di server dan memiliki kolom yang tidak dirujuk di mask, kolom tersebut tidak akan berubah. Kolom yang dirujuk dalam mask, tetapi tidak ada di dokumen input, akan dihapus dari dokumen di server.

mask

DocumentMask

Kolom yang akan ditampilkan. Jika tidak ditetapkan, semua kolom akan ditampilkan.

Jika dokumen memiliki kolom yang tidak ada dalam mask ini, kolom tersebut tidak akan ditampilkan dalam respons.

current_document

Precondition

Prasyarat opsional pada dokumen. Permintaan akan gagal jika hal ini ditetapkan dan tidak dipenuhi oleh dokumen target.

Nilai

Pesan yang dapat menyimpan salah satu jenis nilai yang didukung.

Kolom
Kolom union value_type. Harus memiliki kumpulan nilai. value_type hanya ada berupa salah satu diantara berikut:
null_value

NullValue

Nilai null.

boolean_value

bool

Nilai boolean.

integer_value

int64

Nilai bilangan bulat.

double_value

double

Nilai ganda.

timestamp_value

Timestamp

Nilai stempel waktu.

Presisi hanya hingga mikrodetik. Jika disimpan, presisi tambahan akan dibulatkan ke bawah.

string_value

string

Nilai string.

String, yang dinyatakan sebagai UTF-8, tidak boleh melebihi 1 MiB - 89 byte. Hanya 1.500 byte pertama dari representasi UTF-8 yang dipertimbangkan oleh kueri.

bytes_value

bytes

Nilai byte.

Tidak boleh melebihi 1 MiB - 89 byte. Hanya 1.500 byte pertama yang dipertimbangkan oleh kueri.

reference_value

string

Referensi ke dokumen. Misalnya: projects/{project_id}/databases/{database_id}/documents/{document_path}.

geo_point_value

LatLng

Nilai titik geografis yang mewakili titik di permukaan Bumi.

array_value

ArrayValue

Nilai array.

Tidak dapat langsung berisi nilai array lain, meskipun dapat berisi peta yang berisi array lain.

map_value

MapValue

Nilai peta.

Tulis

Penulisan pada dokumen.

Kolom
update_mask

DocumentMask

Kolom yang akan diperbarui dalam penulisan ini.

Kolom ini hanya dapat ditetapkan jika operasinya adalah update. Jika mask tidak ditetapkan untuk update dan dokumen sudah ada, semua data yang sudah ada akan ditimpa. Jika mask ditetapkan dan dokumen di server memiliki kolom yang tidak dicakup oleh mask, kolom tersebut tidak akan berubah. Kolom yang dirujuk dalam mask, tetapi tidak ada di dokumen input, akan dihapus dari dokumen di server. Jalur kolom dalam mask ini tidak boleh berisi nama kolom yang dicadangkan.

update_transforms[]

FieldTransform

Transformasi yang akan dilakukan setelah update.

Kolom ini hanya dapat ditetapkan jika operasinya adalah update. Jika ada, penulisan ini sama dengan menjalankan update dan transform ke dokumen yang sama secara atomik dan berurutan.

current_document

Precondition

Prasyarat opsional pada dokumen.

Penulisan akan gagal jika hal ini ditetapkan dan tidak dipenuhi oleh dokumen target.

Kolom union operation. Operasi yang akan dieksekusi. operation hanya ada berupa salah satu diantara berikut:
update

Document

Dokumen yang akan ditulis.

delete

string

Nama dokumen yang akan dihapus. Dalam format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

transform

DocumentTransform

Menerapkan transformasi pada dokumen.

WriteRequest

Permintaan untuk Firestore.Write.

Permintaan pertama membuat streaming, atau melanjutkan permintaan yang sudah ada dari token.

Saat membuat streaming baru, server akan membalas dengan respons yang hanya berisi ID dan token, untuk digunakan dalam permintaan berikutnya.

Saat melanjutkan streaming, server terlebih dahulu melakukan streaming respons apa pun yang lebih lambat dari token yang diberikan, lalu respons yang hanya berisi token terbaru, untuk digunakan dalam permintaan berikutnya.

Kolom
database

string

Wajib. Nama database. Dalam format: projects/{project_id}/databases/{database_id}. Ini hanya diperlukan dalam pesan pertama.

stream_id

string

ID aliran data tulis yang akan dilanjutkan. Ini hanya dapat ditetapkan di pesan pertama. Jika dibiarkan kosong, aliran data tulis baru akan dibuat.

writes[]

Write

Penulisan yang akan diterapkan.

Selalu dieksekusi secara atomik dan berurutan. Kolom ini harus kosong pada permintaan pertama. Kolom ini mungkin kosong pada permintaan terakhir. Kolom ini tidak boleh kosong di semua permintaan lainnya.

stream_token

bytes

Token aliran data yang sebelumnya dikirim oleh server.

Klien harus menetapkan kolom ini ke token dari WriteResponse terbaru yang diterimanya. Hal ini mengonfirmasi bahwa klien telah menerima respons hingga token ini. Setelah mengirim token ini, token sebelumnya tidak dapat digunakan lagi.

Server dapat menutup streaming jika ada terlalu banyak respons yang tidak dikonfirmasi.

Biarkan kolom ini tidak disetel saat membuat streaming baru. Untuk melanjutkan streaming pada titik tertentu, tetapkan kolom ini dan kolom stream_id.

Biarkan kolom ini tidak disetel saat membuat streaming baru.

labels

map<string, string>

Label yang terkait dengan permintaan tulis ini.

WriteResponse

Respons untuk Firestore.Write.

Kolom
stream_id

string

ID aliran data. Hanya disetel pada pesan pertama, saat streaming baru dibuat.

stream_token

bytes

Token yang mewakili posisi respons ini dalam aliran data. Langkah ini dapat digunakan oleh klien untuk melanjutkan streaming pada tahap ini.

Kolom ini selalu ditetapkan.

write_results[]

WriteResult

Hasil penerapan penulisan.

Hasil penulisan i-th ini sesuai dengan penulisan i-th dalam permintaan.

commit_time

Timestamp

Waktu saat commit terjadi. Setiap operasi baca dengan read_time yang sama atau lebih besar dijamin akan melihat efek penulisan.

WriteResult

Hasil penerapan operasi tulis.

Kolom
update_time

Timestamp

Waktu pembaruan terakhir dokumen setelah menerapkan penulisan. Tidak ditetapkan setelah delete.

Jika penulisan tidak benar-benar mengubah dokumen, ini akan menjadi update_time sebelumnya.

transform_results[]

Value

Hasil penerapan setiap DocumentTransform.FieldTransform, dalam urutan yang sama.