Method: projects.databases.documents.runQuery

Führt eine Abfrage aus.

HTTP-Anfrage

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

Die URL verwendet die Syntax der gRPC-Transcodierung.

Pfadparameter

Parameter
parent

string

Erforderlich. Der Name der übergeordneten Ressource. Im Format: projects/{projectId}/databases/{databaseId}/documents oder projects/{projectId}/databases/{databaseId}/documents/{document_path}. Beispiel: projects/my-project/databases/my-database/documents oder projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

JSON-Darstellung
{
  "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.
}
Felder
explainOptions

object (ExplainOptions)

Optional. Erläutern Sie Optionen für die Abfrage. Wenn festgelegt, werden zusätzliche Abfragestatistiken zurückgegeben. Andernfalls werden nur Abfrageergebnisse zurückgegeben.

Union-Feld query_type. Die auszuführende Abfrage. Für query_type ist nur einer der folgenden Werte zulässig:
structuredQuery

object (StructuredQuery)

Eine strukturierte Abfrage.

Union-Feld consistency_selector. Der Konsistenzmodus für diese Transaktion. Wenn nichts festgelegt ist, wird standardmäßig „Strong Consistency“ verwendet. Für consistency_selector ist nur einer der folgenden Werte zulässig:
transaction

string (bytes format)

Führen Sie die Abfrage in einer bereits aktiven Transaktion aus.

Der Wert hier ist die intransparente Transaktions-ID, in der die Abfrage ausgeführt wird.

Ein base64-codierter String.

newTransaction

object (TransactionOptions)

Startet eine neue Transaktion und liest die Dokumente. Die Standardeinstellung ist eine schreibgeschützte Transaktion. Die neue Transaktions-ID wird als erste Antwort im Stream zurückgegeben.

readTime

string (Timestamp format)

Liest Dokumente so, wie sie zum jeweiligen Zeitpunkt waren.

Dabei muss es sich um einen Zeitstempel mit einer Genauigkeit von Mikrosekunden innerhalb der letzten Stunde handeln. Wenn die Wiederherstellung zu einem bestimmten Zeitpunkt aktiviert ist, kann zusätzlich ein Zeitstempel einer ganzen Minute innerhalb der letzten 7 Tage angegeben werden.

Ein Zeitstempel im Format RFC3339 UTC „Zulu“ mit Nanosekundenauflösung und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

Antworttext

Die Antwort für Firestore.RunQuery.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

JSON-Darstellung
{
  "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.
}
Felder
transaction

string (bytes format)

Die Transaktion, die im Rahmen dieser Anfrage gestartet wurde. Kann nur in der ersten Antwort und nur dann festgelegt werden, wenn in der Anfrage RunQueryRequest.new_transaction festgelegt wurde. Wenn festgelegt, werden in dieser Antwort keine anderen Felder festgelegt.

Ein base64-codierter String.

document

object (Document)

Ein Abfrageergebnis, das nicht festgelegt ist, wenn ein Teilfortschritt gemeldet wird.

readTime

string (Timestamp format)

Der Zeitpunkt, zu dem das Dokument gelesen wurde. Dieser Wert kann kontinuierlich ansteigen. In diesem Fall wird sichergestellt, dass sich die vorherigen Dokumente im Ergebnisstream zwischen ihrem readTime und diesem Dokument nicht geändert haben.

Wenn die Abfrage keine Ergebnisse zurückgibt, wird eine Antwort mit readTime und ohne document gesendet. Dies gibt den Zeitpunkt an, zu dem die Abfrage ausgeführt wurde.

Ein Zeitstempel im Format RFC3339 UTC „Zulu“ mit Nanosekundenauflösung und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

skippedResults

integer

Die Anzahl der Ergebnisse, die aufgrund eines Offsets zwischen der letzten Antwort und der aktuellen Antwort übersprungen wurden.

explainMetrics

object (ExplainMetrics)

Messwerte zur Abfrage erklären. Es ist nur vorhanden, wenn RunQueryRequest.explain_options angegeben ist, und wird nur einmal mit der letzten Antwort im Stream gesendet.

Union-Feld continuation_selector. Der Fortsetzungsmodus für die Abfrage. Falls vorhanden, bedeutet das, dass der aktuelle Abfrageantwortstream abgeschlossen ist. Dies kann mit oder ohne document festgelegt werden. Wenn festgelegt, werden keine weiteren Ergebnisse zurückgegeben. Für continuation_selector ist nur einer der folgenden Werte zulässig:
done

boolean

Falls vorhanden, hat Firestore die Anfrage vollständig abgeschlossen und es werden keine weiteren Dokumente zurückgegeben.

Autorisierungsbereiche

Erfordert einen der folgenden OAuth-Bereiche:

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

Weitere Informationen finden Sie in der Authentifizierungsübersicht.