Method: projects.databases.documents.runQuery

Menjalankan kueri.

Permintaan HTTP

POST https://firestore.googleapis.com/v1/{parent=projects/*/databases/*/documents}:runQuery

URL menggunakan sintaksis gRPC Transcoding.

Parameter jalur

Parameter
parent

string

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

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi JSON
{
  "explainOptions": {
    object (ExplainOptions)
  },

  // Union field query_type can be only one of the following:
  "structuredQuery": {
    object (StructuredQuery)
  }
  // End of list of possible types for union field query_type.

  // Union field consistency_selector can be only one of the following:
  "transaction": string,
  "newTransaction": {
    object (TransactionOptions)
  },
  "readTime": string
  // End of list of possible types for union field consistency_selector.
}
Kolom
explainOptions

object (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:
structuredQuery

object (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

string (bytes format)

Jalankan kueri dalam transaksi yang sudah aktif.

Nilai di sini adalah ID transaksi buram untuk mengeksekusi kueri.

String berenkode base64.

newTransaction

object (TransactionOptions)

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

readTime

string (Timestamp format)

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.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

Isi respons

Respons untuk Firestore.RunQuery.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "transaction": string,
  "document": {
    object (Document)
  },
  "readTime": string,
  "skippedResults": integer,
  "explainMetrics": {
    object (ExplainMetrics)
  },

  // Union field continuation_selector can be only one of the following:
  "done": boolean
  // End of list of possible types for union field continuation_selector.
}
Kolom
transaction

string (bytes format)

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.

String berenkode base64.

document

object (Document)

Hasil kueri, tidak disetel saat melaporkan progres sebagian.

readTime

string (Timestamp format)

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

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

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

skippedResults

integer

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

explainMetrics

object (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

boolean

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

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.