Package google.firestore.v1

Indeks

Firestore

Layanan Cloud Firestore.

Cloud Firestore adalah database dokumen NoSQL yang cepat, terkelola sepenuhnya, serverless, dan berbasis cloud yang menyederhanakan penyimpanan, sinkronisasi, dan pembuatan kueri data untuk aplikasi seluler, web, dan IoT Anda 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 dikembalikan 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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

Tulis Banyak

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

Menerapkan batch 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 terpisah. Lihat BatchWriteResponse untuk mengetahui status keberhasilan setiap penulisan.

Jika Anda memerlukan kumpulan penulisan 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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

Transaksi Awal

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 mengetahui 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 mengetahui 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 mengetahui 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 mengetahui 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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

ListCollectionId

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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

{i>ListDocuments<i}

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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

Memproses

rpc Listen(ListenRequest) returns (ListenResponse)

Memantau 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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

Kueri Partisi

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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

Rollback

rpc Rollback(RollbackRequest) returns (Empty)

Melakukan 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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

RunAgregasiQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

Menjalankan kueri agregasi.

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

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 mengetahui 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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

{i>UpdateDocument<i}

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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

Tulis

rpc Write(WriteRequest) returns (WriteResponse)

Mengalirkan 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 mengetahui informasi selengkapnya, lihat Ringkasan Autentikasi.

Hasil Agregasi

Hasil bucket tunggal 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 untuk 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 diisi. Nama {i>database<i}. 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 resource turunan dari database yang ditentukan. Nama duplikat akan dihilangkan.

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, defaultnya 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 streaming.

read_time

Timestamp

Membaca dokumen sebagaimana adanya pada waktu tertentu.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, juga dapat 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 di respons pertama, dan hanya jika BatchGetDocumentsRequest.new_transaction ditetapkan dalam permintaan.

read_time

Timestamp

Waktu saat dokumen dibaca. Hal ini mungkin meningkat secara monotis, dalam hal ini dokumen sebelumnya dalam aliran hasil dijamin tidak berubah antara read_time dan yang ini.

Kolom union result. Satu hasil. Kolom ini boleh kosong jika server hanya 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 diisi. Nama {i>database<i}. 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 terpisah. Anda tidak dapat menulis ke dokumen yang sama lebih dari sekali per permintaan.

labels

map<string, string>

Label yang terkait dengan penulisan batch ini.

BatchWriteResponse

Respons dari Firestore.BatchWrite.

Kolom
write_results[]

WriteResult

Hasil penerapan penulisan.

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

status[]

Status

Status penerapan penulisan.

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

BeginTransactionRequest

Permintaan untuk Firestore.BeginTransaction.

Kolom
database

string

Wajib diisi. Nama {i>database<i}. 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.

Urutan Bit

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 "padding" ini bit 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" dari BitSequence (jumlah bit yang dimilikinya) dihitung dengan formula ini: (bitmap.length * 8) - padding.

Kolom
bitmap

bytes

Byte yang mengenkode urutan bit. Mungkin memiliki panjang nol.

padding

int32

Jumlah bit byte terakhir di 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.

Filter Bloom

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

Filter bloom meng-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 ditandatangani menggunakan encoding pelengkap 2.

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 berdasarkan jumlah bit dalam filter bloom untuk mendapatkan bit filter bloom yang diuji.

Kolom
bits

BitSequence

Data filter mekar.

hash_count

int32

Jumlah {i>hash<i} yang digunakan oleh algoritma.

Permintaan Commit

Permintaan untuk Firestore.Commit.

Kolom
database

string

Wajib diisi. Nama {i>database<i}. Dalam format: projects/{project_id}/databases/{database_id}.

writes[]

Write

Penulisan yang akan diterapkan.

Selalu dijalankan secara atomik dan berurutan.

transaction

bytes

Jika ditetapkan, semua penulisan dalam transaksi ini akan diterapkan, lalu di-commit.

Respons Commit

Respons untuk Firestore.Commit.

Kolom
write_results[]

WriteResult

Hasil penerapan penulisan.

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

commit_time

Timestamp

Waktu terjadinya commit. Setiap pembacaan dengan read_time yang sama atau lebih besar dijamin akan melihat efek commit.

CreateDocumentRequest

Permintaan untuk Firestore.CreateDocument.

Kolom
parent

string

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

collection_id

string

Wajib diisi. ID koleksi, relatif terhadap parent, terhadap daftar. Contoh: chatrooms.

document_id

string

ID dokumen yang ditetapkan klien untuk digunakan dalam dokumen ini.

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

document

Document

Wajib diisi. 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 yang mewakili posisi, sesuai urutan kemunculannya dalam urutan klausa kueri.

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

before

bool

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

Permintaan Menghapus Dokumen

Permintaan untuk Firestore.DeleteDocument.

Kolom
name

string

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

current_document

Precondition

Prakondisi opsional pada dokumen. Permintaan akan gagal jika disetel dan tidak dipenuhi oleh dokumen target.

Dokumen

Dokumen Firestore.

Tidak boleh lebih dari 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 dokumen dibuat.

Nilai ini meningkat secara monoton saat dokumen dihapus lalu dibuat ulang. Metrik 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. Metrik ini juga dapat dibandingkan dengan nilai dari dokumen lain dan read_time kueri.

DocumentChange

Document telah diubah.

Mungkin 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 disetel, hanya 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.

Penghapusan Dokumen

Document telah dihapus.

Mungkin akibat dari beberapa writes, termasuk update, yang terakhir menghapus Document.

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

Kolom
document

string

Nama resource Document yang telah dihapus.

removed_target_ids[]

int32

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

read_time

Timestamp

Stempel waktu pembacaan saat penghapusan diamati.

Lebih besar atau sama dengan commit_time dari penghapusan.

DocumentMask

Kumpulan jalur kolom pada dokumen. Digunakan untuk membatasi operasi get atau update pada dokumen ke sebagian kolomnya. Ini berbeda dengan mask kolom standar, karena selalu mencakup Document, dan memperhitungkan sifat dinamis Value.

Kolom
field_paths[]

string

Daftar jalur kolom dalam mask. Lihat Document.fields untuk melihat referensi sintaksis jalur kolom.

Penghapusan Dokumen

Document telah dihapus agar tidak dapat dilihat 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.

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

Kolom
document

string

Nama resource Document yang tidak terlihat.

removed_target_ids[]

int32

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

read_time

Timestamp

Stempel waktu pembacaan saat penghapusan diamati.

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

TransformasiDokumen

Transformasi dokumen.

Kolom
document

string

Nama dokumen yang akan diubah.

field_transforms[]

FieldTransform

Daftar transformasi yang akan diterapkan ke kolom dokumen, secara berurutan. Kolom ini wajib diisi.

TransformasiBidang

Transformasi kolom dokumen.

Kolom
field_path

string

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

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

ServerValue

Menetapkan kolom ke nilai server yang diberikan.

increment

Value

Menambahkan nilai yang diberikan ke nilai kolom saat ini.

Nilainya harus 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 tersebut akan ditafsirkan sebagai nilai ganda. Aritmatika ganda dan representasi nilai ganda mengikuti semantik IEEE 754. Jika ada overflow bilangan bulat positif/negatif, kolom diselesaikan ke bilangan bulat positif/negatif terbesar.

maximum

Value

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

Nilainya harus 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 saat kolom dan nilai inputnya memiliki jenis campuran (yaitu - satu adalah bilangan bulat dan satu adalah double), kolom akan mengambil jenis operand yang lebih besar. Jika operand setara (misalnya 3 dan 3.0), bidang tidak berubah. 0, 0.0, dan -0.0 semuanya nol. Maksimum nilai nol yang disimpan dan nilai input nol selalu merupakan nilai yang disimpan. Maksimum dari nilai numerik apa pun x dan NaN adalah NaN.

minimum

Value

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

Nilainya harus bilangan bulat atau nilai ganda. Jika kolom bukan bilangan bulat atau ganda, atau jika kolom belum ada, transformasi akan menetapkan kolom tersebut ke nilai input. Jika operasi minimum diterapkan dengan kolom dan nilai inputnya berupa jenis campuran (yaitu - satu adalah bilangan bulat dan satu adalah double) kolom akan mengambil jenis operand yang lebih kecil. Jika operand setara (misalnya 3 dan 3.0), bidang tidak berubah. 0, 0.0, dan -0.0 semuanya nol. Minimum dari nilai nol yang disimpan dan nilai input nol selalu merupakan nilai yang disimpan. Minimum dari nilai numerik apa pun x dan NaN adalah NaN.

append_missing_elements

ArrayValue

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

Jumlah yang setara dari berbagai jenis (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 berupa nilai null.

remove_all_from_array

ArrayValue

Hapus semua elemen yang diberikan dari array dalam kolom. Jika kolom bukan berupa array, atau jika belum ada, kolom akan ditetapkan ke array kosong.

Jumlah yang setara dari jenis yang berbeda (misalnya 3L dan 3.0) dianggap sama saat memutuskan apakah suatu elemen harus dihapus atau tidak. 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 berupa 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 dalam milidetik. Jika digunakan di beberapa kolom (dokumen yang sama atau berbeda) dalam suatu transaksi, semua kolom akan mendapatkan stempel waktu server yang sama.

ExecutionStats

Statistik eksekusi untuk kueri.

Kolom
results_returned

int64

Jumlah total 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

Men-debug statistik dari eksekusi kueri. Perlu diperhatikan bahwa statistik proses debug dapat berubah sewaktu-waktu seiring perkembangan Firestore. Data ini dapat mencakup: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" }

Filter Eksistensi

Ringkasan semua dokumen yang cocok dengan target tertentu.

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 di klien yang cocok, klien harus menentukan secara manual dokumen mana yang tidak lagi sesuai dengan target.

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

unchanged_names

BloomFilter

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

Filter bloom ini bisa diabaikan sesuai kebijaksanaan server, seperti jika dianggap bahwa klien tidak akan menggunakannya atau jika secara komputasi terlalu mahal untuk dihitung atau dikirim. Klien harus menangani kolom ini dengan baik jika kolom tersebut tidak ada dengan kembali ke logika yang digunakan sebelum kolom ini ada; yaitu, tambahkan kembali target tanpa token resume untuk mencari tahu dokumen mana dalam {i>cache<i} 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 saat ExplainOptions.analyze ditetapkan ke benar (true).

ExplainOptions

Menjelaskan opsi untuk kueri.

Kolom
analyze

bool

Opsional. Apakah akan mengeksekusi kueri ini.

Jika salah (default), kueri akan direncanakan, dengan hanya menampilkan metrik dari tahap perencanaan.

Jika benar, kueri akan direncanakan dan dieksekusi, sehingga menampilkan hasil kueri lengkap beserta metrik tahap perencanaan dan eksekusi.

GetDocumentRequest

Permintaan untuk Firestore.GetDocument.

Kolom
name

string

Wajib diisi. 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, defaultnya 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, juga dapat berupa stempel waktu menit penuh dalam 7 hari terakhir.

ListCollectionIdsRequest

Permintaan untuk Firestore.ListCollectionIds.

Kolom
parent

string

Wajib diisi. Dokumen induk. Dalam format: projects/{project_id}/databases/{database_id}/documents/{document_path}. Contoh: 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, defaultnya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
read_time

Timestamp

Membaca dokumen sebagaimana adanya pada waktu tertentu.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, juga dapat 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.

{i>ListDocumentsRequest<i}

Permintaan untuk Firestore.ListDocuments.

Kolom
parent

string

Wajib diisi. 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

collection_id

string

Opsional. ID koleksi, relatif terhadap parent, terhadap daftar.

Misalnya: chatrooms atau messages.

Hal ini bersifat opsional, dan jika tidak diberikan, 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 dapat menampilkan lebih sedikit dari nilai ini.

page_token

string

Opsional. Token halaman, yang diterima dari respons ListDocuments sebelumnya.

Berikan atribut ini untuk mengambil halaman selanjutnya. Saat memberi nomor 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.

Metode 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 harus menampilkan dokumen yang hilang.

Dokumen tidak ada jika tidak ada, tetapi ada sub-dokumen yang disusun bertingkat di bawahnya. Jika benar, 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, defaultnya adalah konsistensi kuat. consistency_selector hanya ada berupa salah satu diantara berikut:
transaction

bytes

Melakukan pembacaan sebagai bagian dari transaksi yang sudah aktif.

read_time

Timestamp

Lakukan pembacaan pada waktu yang disediakan.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, juga dapat 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 ada halaman berikutnya.

ListenRequest

Permintaan untuk Firestore.Listen

Kolom
database

string

Wajib diisi. Nama {i>database<i}. Dalam format: projects/{project_id}/databases/{database_id}.

labels

map<string, string>

Label yang terkait dengan perubahan target ini.

Kolom union target_change. Target yang didukung akan berubah. target_change hanya ada berupa salah satu diantara berikut:
add_target

Target

Target untuk ditambahkan ke aliran data ini.

remove_target

int32

ID target yang akan dihapus dari aliran data ini.

ResponsRespons

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 diubah.

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 pada kumpulan dokumen yang sebelumnya ditampilkan untuk target tertentu.

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

Nilai Peta

Nilai peta.

Kolom
fields

map<string, Value>

Kolom peta.

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

Permintaan Kueri Partisi

Permintaan untuk Firestore.PartitionQuery.

Kolom
parent

string

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

partition_count

int64

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

Misalnya, parameter ini dapat ditetapkan ke jumlah kueri paralel yang lebih sedikit dari jumlah kueri paralel yang akan dijalankan, atau satu untuk menjalankan tugas pipeline data, yaitu satu lebih sedikit dari jumlah worker 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, penggunaan beberapa kumpulan hasil akan memerlukan penggabungan kumpulan hasil yang berbeda.

Misalnya, dua panggilan berikutnya yang menggunakan page_token mungkin akan menampilkan:

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

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

page_size

int32

Jumlah maksimum partisi yang akan 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 dalam partition_count.

Kolom union query_type. Kueri yang akan dipartisi. 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 tidak didukung.

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

Timestamp

Membaca dokumen sebagaimana adanya pada waktu tertentu.

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

PartitionQueryResponse

Respons untuk Firestore.PartitionQuery.

Kolom
partitions[]

Cursor

Hasil partisi. Setiap partisi merupakan titik bagi 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 seperti hasil kueri yang diberikan ke PartitionQuery.

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

  • kueri, akhir_pada A
  • query, start_at A, end_at B
  • kueri, start_at B

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

next_page_token

string

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

Ringkasan Rencana

Informasi fase perencanaan untuk kueri.

Kolom
indexes_used[]

Struct

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

Prasyarat

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 telah diperbarui terakhir kali pada saat itu. Stempel waktu harus diselaraskan dalam mikrodetik.

Permintaan Rollback

Permintaan untuk Firestore.Rollback.

Kolom
database

string

Wajib diisi. Nama {i>database<i}. Dalam format: projects/{project_id}/databases/{database_id}.

transaction

bytes

Wajib diisi. Transaksi yang akan di-roll back.

RunAggregationQueryRequest

Permintaan untuk Firestore.RunAggregationQuery.

Kolom
parent

string

Wajib diisi. 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. 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, ditetapkan secara default 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, dengan setelan default ke hanya baca.

ID transaksi baru akan ditampilkan sebagai respons pertama dalam streaming.

read_time

Timestamp

Mengeksekusi kueri pada stempel waktu yang diberikan.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, juga dapat 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 parsial.

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 gabungan dihitung. Hal ini selalu meningkat secara monoton; dalam hal ini, AggregationResult sebelumnya di aliran hasil dijamin tidak akan 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 saat kueri dijalankan.

explain_metrics

ExplainMetrics

Metrik penjelasan kueri. Ini hanya ada saat RunAggregationQueryRequest.explain_options disediakan, dan hanya dikirim sekali dengan respons terakhir dalam aliran data.

RunQueryRequest

Permintaan untuk Firestore.RunQuery.

Kolom
parent

string

Wajib diisi. 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. 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, defaultnya 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 streaming.

read_time

Timestamp

Membaca dokumen sebagaimana adanya pada waktu tertentu.

Ini harus berupa stempel waktu presisi mikrodetik dalam satu jam terakhir, atau jika Pemulihan Point-in-Time diaktifkan, juga dapat 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 di 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 ditetapkan saat melaporkan progres parsial.

read_time

Timestamp

Waktu saat dokumen dibaca. Jumlah ini mungkin meningkat secara monoton; dalam hal ini, dokumen sebelumnya dalam aliran hasil dipastikan tidak akan 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 saat kueri dijalankan.

skipped_results

int32

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

explain_metrics

ExplainMetrics

Metrik penjelasan kueri. Ini hanya ada saat RunQueryRequest.explain_options disediakan, dan hanya dikirim sekali dengan respons terakhir dalam aliran data.

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

bool

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

Kueri Agregasi Terstruktur

Kueri Firestore untuk menjalankan agregasi pada StructuredQuery.

Kolom
aggregations[]

Aggregation

Opsional. Serangkaian agregasi yang akan diterapkan pada hasil structured_query.

Membutuhkan:

  • Minimal satu dan maksimum lima agregasi per kueri.
Kolom union query_type. Kueri dasar yang akan diagregasi. 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 disediakan, 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 (
  ...
);

Membutuhkan:

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

Count

Agregator penghitungan.

sum

Sum

Agregator jumlah.

avg

Avg

Rata-rata agregator.

Rata-rata

Rata-rata nilai kolom yang diminta.

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

  • Jika nilai gabungan berisi NaN, akan menampilkan NaN. Matematika tanpa batas mengikuti standar IEEE-754.

  • Jika kumpulan nilai gabungan kosong, NULL akan ditampilkan.

  • Selalu menampilkan hasil sebagai double.

Kolom
field

FieldReference

Kolom tempat agregat.

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.

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

{i>Unspecified<i} ditafsirkan sebagai tidak terikat.

Contoh Tingkat Tinggi:

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

Membutuhkan:

  • Harus lebih besar dari nol jika ada.

Jumlah

Jumlah nilai kolom yang diminta.

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

  • Jika nilai gabungan berisi NaN, akan menampilkan NaN. Matematika tanpa batas mengikuti standar IEEE-754.

  • Jika kumpulan nilai gabungan kosong, akan menampilkan 0.

  • Menampilkan bilangan bulat 64-bit jika semua bilangan yang diagregasi adalah bilangan bulat dan hasil penjumlahan tidak meluap. Jika tidak, hasilnya akan ditampilkan sebagai double. Perhatikan bahwa meskipun semua nilai yang diagregasi adalah bilangan bulat, hasilnya akan ditampilkan sebagai ganda jika tidak sesuai dengan bilangan bulat dengan tanda tangan 64-bit. Jika ini terjadi, nilai yang ditampilkan akan kehilangan presisi.

  • Jika underflow terjadi, agregasi floating point bersifat non-deterministik. Artinya, menjalankan kueri yang sama berulang kali tanpa mengubah nilai dasar dapat memberikan hasil yang sedikit berbeda setiap kalinya. Dalam kasus tersebut, nilai harus disimpan sebagai bilangan bulat di atas angka floating point.

Kolom
field

FieldReference

Kolom tempat agregat.

StructuredQuery

Kueri Firestore.

Tahapan kueri dijalankan dalam urutan berikut: 1. dari 2. di mana 3. pilih 4. order_by + start_at + end_at 5. offset 6. limit

Kolom
select

Projection

Sub-kumpulan opsional kolom yang akan ditampilkan.

Ini bertindak sebagai DocumentMask pada dokumen yang ditampilkan dari kueri. Jika tidak ditetapkan, mengasumsikan 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 memberikan pengurutan lengkap, pengurutan parsial, atau tanpa pengurutan 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 harus ada di order_by, tetapi belum ada, ditambahkan dalam urutan leksikografis nama kolom.
  • Jika pesanan di __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 suatu 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 menurut (b ASC, __name__ ASC).

Kursor dapat merujuk ke pengurutan lengkap atau awalan lokasi, meskipun tidak dapat merujuk lebih banyak kolom daripada yang ada dalam ORDER BY yang diberikan.

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

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

Tidak seperti OFFSET yang memerlukan pemindaian pada N hasil pertama untuk dilewati, kursor awal memungkinkan kueri untuk dimulai pada posisi logis. Posisi ini tidak diperlukan untuk mencocokkan hasil yang sebenarnya. Posisi ini akan memindai maju dari posisi ini untuk menemukan dokumen berikutnya.

Membutuhkan:

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

Cursor

Awalan potensial dari suatu posisi dalam kumpulan hasil untuk mengakhiri kueri.

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

Membutuhkan:

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

int32

Jumlah dokumen yang akan dilewati sebelum menampilkan hasil pertama.

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

Membutuhkan:

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

Int32Value

Jumlah hasil maksimum yang akan ditampilkan.

Berlaku setelah semua batasan lainnya.

Membutuhkan:

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

FindNearest

Opsional. Penelusuran tetangga terdekat yang potensial.

Berlaku setelah semua filter dan pengurutan lainnya.

Menemukan embedding vektor terdekat dengan vektor kueri yang diberikan.

PemilihKoleksi

Pilihan koleksi, seperti messages as m1.

Kolom
collection_id

string

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

all_descendants

bool

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

CompositeFilter

Filter yang menggabungkan beberapa filter lainnya menggunakan operator yang ditentukan.

Kolom
op

Operator

Operator untuk menggabungkan beberapa filter.

filters[]

Filter

Daftar filter yang akan digabungkan.

Membutuhkan:

  • Terdapat setidaknya satu filter.

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.

{i>FieldFilter<i}

Filter di kolom tertentu.

Kolom
field

FieldReference

Kolom yang akan difilter.

op

Operator

Operator untuk memfilter.

value

Value

Nilai untuk 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.

Membutuhkan:

  • field tersebut akan muncul pertama di order_by.
LESS_THAN_OR_EQUAL

field yang diberikan kurang dari atau sama dengan value yang diberikan.

Membutuhkan:

  • field tersebut akan muncul pertama di order_by.
GREATER_THAN

field yang diberikan lebih besar dari value yang diberikan.

Membutuhkan:

  • field tersebut akan muncul pertama di order_by.
GREATER_THAN_OR_EQUAL

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

Membutuhkan:

  • field tersebut akan muncul pertama di order_by.
EQUAL field yang diberikan sama dengan value yang diberikan.
NOT_EQUAL

field yang diberikan tidak sama dengan value yang diberikan.

Membutuhkan:

  • Tidak ada NOT_EQUAL, NOT_IN, IS_NOT_NULL, atau IS_NOT_NAN lain.
  • field tersebut akan muncul terlebih dahulu 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.

Membutuhkan:

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

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

Membutuhkan:

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

Nilai field tidak ada dalam array yang diberikan.

Membutuhkan:

  • value tersebut adalah ArrayValue tidak kosong dengan maksimal 10 nilai.
  • Tidak ada OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL, atau IS_NOT_NAN lain.
  • field tersebut akan muncul terlebih dahulu di order_by.

FieldReference

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

Kolom
field_path

string

Referensi ke kolom dalam dokumen.

Membutuhkan:

  • 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.

Temukan Terdekat

Konfigurasi penelusuran Tetangga Terdekat.

Kolom
vector_field

FieldReference

Wajib diisi. Kolom vektor yang diindeks untuk ditelusuri. Hanya dokumen yang berisi vektor yang dimensinya cocok dengan query_vector yang dapat ditampilkan.

query_vector

Value

Wajib diisi. Vektor kueri yang kita telusuri. Harus berupa vektor yang tidak lebih dari 2.048 dimensi.

distance_measure

DistanceMeasure

Wajib diisi. Ukuran jarak yang akan digunakan, wajib diisi.

limit

Int32Value

Wajib diisi. Jumlah tetangga terdekat yang akan ditampilkan. Harus berupa bilangan bulat positif yang tidak lebih dari 1.000.

Pengukur Jarak

Ukuran jarak yang akan digunakan ketika membandingkan vektor.

Enum
DISTANCE_MEASURE_UNSPECIFIED Seharusnya tidak disetel.
EUCLIDEAN Mengukur jarak EUCLIDEAN antarvektor. Lihat Euclidean untuk mempelajari lebih lanjut
COSINE Membandingkan vektor berdasarkan sudut di antara mereka, yang memungkinkan Anda mengukur kesamaan yang tidak didasarkan pada besaran vektor. Sebaiknya gunakan DOT_PRODUCT dengan vektor yang dinormalisasi satuan, bukan jarak COSINE, yang secara matematis setara dengan performa yang lebih baik. Lihat Kemiripan Cosine untuk mempelajari lebih lanjut.
DOT_PRODUCT Mirip dengan kosinus tetapi dipengaruhi oleh besaran vektor. Lihat Dot Product untuk mempelajari lebih lanjut.

Pesan

Pesanan di kolom.

Kolom
field

FieldReference

Kolom untuk mengurutkan.

direction

Direction

Arah pengurutan. Nilai defaultnya 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__'].

{i>UnaryFilter<i}

Filter dengan satu operand.

Kolom
op

Operator

Operator unary yang akan diterapkan.

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

FieldReference

Kolom tempat Anda menerapkan operator.

Operator

Operator unary.

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

field yang diberikan tidak sama dengan NaN.

Membutuhkan:

  • Tidak ada NOT_EQUAL, NOT_IN, IS_NOT_NULL, atau IS_NOT_NAN lain.
  • field tersebut akan muncul terlebih dahulu di order_by.
IS_NOT_NULL

field yang diberikan tidak sama dengan NULL.

Membutuhkan:

  • Satu NOT_EQUAL, NOT_IN, IS_NOT_NULL, atau IS_NOT_NAN.
  • field tersebut akan muncul terlebih dahulu di order_by.

Target

Spesifikasi serangkaian dokumen yang akan diproses.

Kolom
target_id

int32

ID target yang mengidentifikasi target di streaming. Harus berupa bilangan 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.

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

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

once

bool

Jika target harus dihapus setelah menjadi terbaru dan konsisten.

expected_count

Int32Value

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

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

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

QueryTarget

Target yang ditentukan oleh kueri.

documents

DocumentsTarget

Target yang ditentukan oleh sekumpulan 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 resume dari TargetChange sebelumnya untuk target yang identik.

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

read_time

Timestamp

Mulai mendengarkan setelah read_time tertentu.

Klien harus mengetahui status dokumen yang cocok pada saat ini.

TargetDokumen

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 resource turunan dari database yang ditentukan. Nama duplikat akan dihilangkan.

TargetKueri

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.

Perubahan Target

Target yang sedang 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 berlaku untuk 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 (dihilangkan jika target_id tidak memiliki snapshot yang konsisten).

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

Untuk streaming tertentu, read_time dijamin meningkat secara monoton.

JenisPerubahanTarget

Jenis perubahan.

Enum
NO_CHANGE Tidak ada perubahan yang terjadi. Hanya digunakan untuk mengirim resume_token yang telah 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 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 target sebelumnya 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 tersebut dapat digunakan untuk operasi baca dan tulis.

Baca Saja

Opsi untuk transaksi yang hanya dapat digunakan untuk membaca dokumen.

Kolom
Kolom union consistency_selector. Mode konsistensi untuk transaksi ini. Jika tidak disetel, defaultnya 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, juga dapat berupa stempel waktu menit penuh dalam 7 hari terakhir.

BacaTulis

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

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

Kolom
retry_transaction

bytes

Transaksi opsional yang akan dicoba lagi.

{i>UpdateDocumentRequest<i}

Permintaan untuk Firestore.UpdateDocument.

Kolom
document

Document

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

update_mask

DocumentMask

Kolom yang akan diperbarui. Tidak satu pun jalur kolom di mask yang boleh berisi nama yang dicadangkan.

Jika dokumen ada di server dan memiliki kolom yang tidak dirujuk dalam mask, kolom tersebut tidak akan berubah. Kolom yang dirujuk dalam mask, tetapi tidak ada dalam dokumen input, 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

Prakondisi opsional pada dokumen. Permintaan akan gagal jika disetel dan tidak dipenuhi oleh dokumen target.

Nilai

Pesan yang dapat menyimpan salah satu jenis nilai yang didukung.

Kolom
Kolom union value_type. Harus memiliki nilai yang ditetapkan. 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. Saat disimpan, presisi tambahan apa pun akan dibulatkan ke bawah.

string_value

string

Nilai string.

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

bytes_value

bytes

Nilai byte.

Tidak boleh lebih dari 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 berisi nilai array lain secara langsung, 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 ada, semua data yang ada akan ditimpa. Jika mask ditetapkan dan dokumen di server memiliki kolom yang tidak tercakup oleh mask, kolom tersebut tidak akan berubah. Kolom yang dirujuk dalam mask, tetapi tidak ada dalam dokumen input, dihapus dari dokumen di server. Jalur kolom di 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 setara dengan melakukan update dan transform pada dokumen yang sama secara atomik dan berurutan.

current_document

Precondition

Prakondisi opsional pada dokumen.

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

Kolom union operation. Operasi yang akan dijalankan. 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 ke dokumen.

Permintaan Penulisan

Permintaan untuk Firestore.Write.

Permintaan pertama membuat streaming, atau melanjutkan streaming 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 setelah token yang diberikan, lalu respons yang hanya berisi token terbaru, untuk digunakan dalam permintaan berikutnya.

Kolom
database

string

Wajib diisi. Nama {i>database<i}. Dalam format: projects/{project_id}/databases/{database_id}. Ini hanya diperlukan di pesan pertama.

stream_id

string

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

writes[]

Write

Penulisan yang akan diterapkan.

Selalu dijalankan secara atomik dan berurutan. Kolom ini harus kosong pada permintaan pertama. Kolom ini mungkin kosong pada permintaan terakhir. Kolom ini wajib diisi pada semua permintaan lainnya.

stream_token

bytes

Token streaming yang sebelumnya dikirim oleh server.

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

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

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

Jangan tetapkan kolom ini saat membuat streaming baru.

labels

map<string, string>

Label yang terkait dengan permintaan tulis ini.

ResponsTulis

Respons untuk Firestore.Write.

Kolom
stream_id

string

ID streaming. Hanya ditetapkan pada pesan pertama, saat streaming baru dibuat.

stream_token

bytes

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

Kolom ini selalu ditetapkan.

write_results[]

WriteResult

Hasil penerapan penulisan.

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

commit_time

Timestamp

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

WriteResult

Hasil penerapan penulisan.

Kolom
update_time

Timestamp

Waktu pembaruan dokumen terakhir 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.