Package google.firestore.v1beta1

Index

Firestore

Cloud Firestore-Dienst

Cloud Firestore ist eine schnelle, vollständig verwaltete, serverlose, cloudnative NoSQL-Datenbank für Dokumente, mit der das Speichern, Synchronisieren und Abfragen von Daten für Mobil-, Web- und IoT-Anwendungen weltweit vereinfacht wird. Die Clientbibliotheken ermöglichen Livesynchronisierung und Offlinesupport. Dank der Sicherheitsfunktionen und der Einbindung in Firebase und die Google Cloud Platform lassen sich serverlose Anwendungen noch schneller erstellen.

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

Ruft mehrere Dokumente ab.

Bei von dieser Methode zurückgegebenen Dokumenten kann nicht garantiert werden, dass sie in derselben Reihenfolge zurückgegeben werden, in der sie angefordert wurden.

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.

BatchWrite

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

Wendet einen Batch von Schreibvorgängen an.

Die BatchWrite-Methode wendet die Schreibvorgänge nicht atomar an und kann sie in falscher Reihenfolge anwenden. Die Methode lässt nicht mehr als einen Schreibvorgang pro Dokument zu. Jeder Schreibvorgang ist unabhängig voneinander erfolgreich oder schlägt fehl. Den Erfolgsstatus jedes Schreibvorgangs finden Sie unter BatchWriteResponse.

Wenn Sie einen atomar angewendeten Satz von Schreibvorgängen benötigen, verwenden Sie stattdessen Commit.

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.

BeginTransaction

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

Startet eine neue Transaktion.

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.

Commit durchführen

rpc Commit(CommitRequest) returns (CommitResponse)

Führt ein Commit einer Transaktion durch und aktualisiert optional Dokumente.

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.

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

Erstellt ein neues Dokument.

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.

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

Löscht ein Dokument.

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.

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

Ruft ein einzelnes Dokument ab.

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.

ListCollectionIds

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

Listet alle Sammlungs-IDs unter einem Dokument auf.

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.

ListDocuments

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

Listet Dokumente auf.

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.

Zuhören

rpc Listen(ListenRequest) returns (ListenResponse)

Beobachtet Änderungen. Diese Methode ist nur über gRPC oder WebChannel (nicht über REST) verfügbar.

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.

PartitionQuery

rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse)

Partitioniert eine Abfrage durch Rückgabe von Partitions-Cursorn, mit denen die Abfrage parallel ausgeführt werden kann. Die zurückgegebenen Partitions-Cursor sind Aufteilungspunkte, die von RunQuery als Start-/Endpunkte für die Abfrageergebnisse verwendet werden können.

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.

Rollback

rpc Rollback(RollbackRequest) returns (Empty)

Führt ein Rollback einer Transaktion durch.

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.

RunAggregationQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

Führt eine Aggregationsabfrage aus.

Anstatt Document-Ergebnisse wie Firestore.RunQuery zu erzeugen, ermöglicht diese API das Ausführen einer Aggregation, um serverseitig eine Reihe von AggregationResult zu erzeugen.

Allgemeines Beispiel:

-- Return the number of documents in table given a filter.
SELECT COUNT(*) FROM ( SELECT * FROM k where a = true );
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.

RunQuery

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

Führt eine Abfrage aus.

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.

UpdateDocument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

Aktualisiert oder fügt ein Dokument ein.

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.

Schreiben

rpc Write(WriteRequest) returns (WriteResponse)

Streamt Batches von Dokumentaktualisierungen und -löschungen in der angegebenen Reihenfolge. Diese Methode ist nur über gRPC oder WebChannel (nicht über REST) verfügbar.

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.

AggregationResult

Das Ergebnis eines einzelnen Buckets aus einer Firestore-Aggregationsabfrage.

Im Gegensatz zu Dokumentabfragen, bei denen für jedes Ergebnis unterschiedliche Felder vorhanden sein können, sind die Schlüssel von aggregate_fields für alle Ergebnisse einer Aggregationsabfrage gleich.

Felder
aggregate_fields

map<string, Value>

Das Ergebnis der Aggregatfunktionen, z. B. COUNT(*) AS total_docs.

Der Schlüssel ist die alias, die der Aggregationsfunktion bei der Eingabe zugewiesen wird. Die Größe dieser Zuordnung entspricht der Anzahl der Aggregationsfunktionen in der Abfrage.

ArrayValue

Ein Arraywert.

Felder
values[]

Value

Werte im Array.

BatchGetDocumentsRequest

Die Anfrage für Firestore.BatchGetDocuments.

Felder
database

string

Erforderlich. Der Datenbankname. Im Format: projects/{project_id}/databases/{database_id}.

documents[]

string

Die Namen der abzurufenden Dokumente. Im Format: projects/{project_id}/databases/{database_id}/documents/{document_path}. Die Anfrage schlägt fehl, wenn eines der Dokumente keine untergeordnete Ressource des angegebenen database ist. Doppelte Namen werden entfernt.

mask

DocumentMask

Die zurückzugebenden Felder. Wenn nicht festgelegt, werden alle Felder zurückgegeben.

Wenn ein Dokument ein Feld enthält, das in dieser Maske nicht vorhanden ist, wird dieses Feld nicht in der Antwort zurückgegeben.

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

bytes

Liest Dokumente in einer Transaktion.

new_transaction

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.

read_time

Timestamp

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.

BatchGetDocumentsResponse

Die gestreamte Antwort für Firestore.BatchGetDocuments.

Felder
transaction

bytes

Die Transaktion, die im Rahmen dieser Anfrage gestartet wurde. Wird nur in der ersten Antwort und nur dann festgelegt, wenn in der Anfrage BatchGetDocumentsRequest.new_transaction festgelegt wurde.

read_time

Timestamp

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

Union-Feld result. Ein einzelnes Ergebnis. Dieses Feld kann leer sein, wenn der Server nur eine Transaktion zurückgibt. Für result ist nur einer der folgenden Werte zulässig:
found

Document

Ein angefordertes Dokument.

missing

string

Ein Dokumentname, der angefordert wurde, aber nicht vorhanden ist. Im Format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

BatchWriteRequest

Die Anfrage für Firestore.BatchWrite.

Felder
database

string

Erforderlich. Der Datenbankname. Im Format: projects/{project_id}/databases/{database_id}.

writes[]

Write

Die anzuwendenden Schreibvorgänge.

Die Methode wendet Schreibvorgänge nicht atomar an und garantiert keine Sortierung. Jeder Schreibvorgang ist unabhängig voneinander erfolgreich oder schlägt fehl. Sie können pro Anfrage nur einmal in dasselbe Dokument schreiben.

labels

map<string, string>

Labels, die mit diesem Batchschreibvorgang verknüpft sind.

BatchWriteResponse

Die Antwort von Firestore.BatchWrite.

Felder
write_results[]

WriteResult

Das Ergebnis der Anwendung der Schreibvorgänge.

Dieses i-te Schreibergebnis entspricht dem i-ten Schreibvorgang in der Anfrage.

status[]

Status

Der Status der Anwendung der Schreibvorgänge.

Dieser i-te Schreibstatus entspricht dem i-ten Schreibvorgang in der Anfrage.

BeginTransactionRequest

Die Anfrage für Firestore.BeginTransaction.

Felder
database

string

Erforderlich. Der Datenbankname. Im Format: projects/{project_id}/databases/{database_id}.

options

TransactionOptions

Die Optionen für die Transaktion. Die Standardeinstellung ist eine Lese-Schreib-Transaktion.

BeginTransactionResponse

Die Antwort für Firestore.BeginTransaction.

Felder
transaction

bytes

Die gestartete Transaktion.

BitSequence

Eine Folge von Bits, die in einem Byte-Array codiert sind.

Jedes Byte im bitmap-Byte-Array speichert 8 Bit der Sequenz. Die einzige Ausnahme ist das letzte Byte, in dem möglicherweise oder weniger 8 Bit gespeichert werden. padding definiert die Anzahl der Bits des letzten Bytes, das als „Padding“ ignoriert werden soll. Die Werte dieser „Padding“-Bits sind nicht angegeben und müssen ignoriert werden.

Berechnen Sie Folgendes, um das erste Bit, Bit 0, abzurufen: (bitmap[0] & 0x01) != 0. Berechnen Sie Folgendes, um das zweite Bit, Bit 1, abzurufen: (bitmap[0] & 0x02) != 0. Zum Abrufen des dritten Bits, Bit 2, berechnen Sie Folgendes: (bitmap[0] & 0x04) != 0. Berechnen Sie Folgendes, um das vierte Bit, Bit 3, abzurufen: (bitmap[0] & 0x08) != 0. Berechnen Sie Folgendes, um Bit n abzurufen: (bitmap[n / 8] & (0x01 << (n % 8))) != 0.

Die „Größe“ von BitSequence (die Anzahl der enthaltenen Bits) wird mit dieser Formel berechnet: (bitmap.length * 8) - padding.

Felder
bitmap

bytes

Die Byte, die die Bitsequenz codieren. Kann eine Länge von null haben.

padding

int32

Die Anzahl der Bits des letzten Byte in bitmap, die als „Padding“ ignoriert werden sollen. Wenn die Länge von bitmap null ist, muss dieser Wert 0 sein. Andernfalls muss dieser Wert zwischen 0 und 7 (einschließlich) liegen.

BloomFilter

Ein Bloom-Filter (https://en.wikipedia.org/wiki/Bloom_filter).

Der Bloom-Filter hasht die Einträge mit MD5 und behandelt den resultierenden 128-Bit-Hash als zwei verschiedene 64-Bit-Hash-Werte, die unter Verwendung der Komplementärcodierung von 2 als vorzeichenlose Ganzzahlen interpretiert werden.

Diese beiden Hashwerte mit den Namen h1 und h2 werden dann verwendet, um die Hashwerte von hash_count mithilfe der Formel zu berechnen, beginnend bei i=0:

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

Diese daraus resultierenden Werte werden dann modulo zur Anzahl der Bits im Bloomfilter genommen, um die Bits des Bloomfilters für den gegebenen Eintrag zu testen.

Felder
bits

BitSequence

Die Bloom-Filterdaten.

hash_count

int32

Die Anzahl der vom Algorithmus verwendeten Hashes.

CommitRequest

Die Anfrage für Firestore.Commit.

Felder
database

string

Erforderlich. Der Datenbankname. Im Format: projects/{project_id}/databases/{database_id}.

writes[]

Write

Die anzuwendenden Schreibvorgänge.

Immer atomar und in der richtigen Reihenfolge ausgeführt.

transaction

bytes

Wenn festgelegt, werden alle Schreibvorgänge in dieser Transaktion angewendet und ein Commit durchgeführt.

CommitResponse

Die Antwort für Firestore.Commit.

Felder
write_results[]

WriteResult

Das Ergebnis der Anwendung der Schreibvorgänge.

Dieses i-te Schreibergebnis entspricht dem i-ten Schreibvorgang in der Anfrage.

commit_time

Timestamp

Der Zeitpunkt, zu dem der Commit ausgeführt wurde. Jeder Lesevorgang mit einem gleich oder größer als read_time erkennt die Auswirkungen des Commits garantiert.

CreateDocumentRequest

Die Anfrage für Firestore.CreateDocument.

Felder
parent

string

Erforderlich. Die übergeordnete Ressource. Beispiel: projects/{project_id}/databases/{database_id}/documents oder projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collection_id

string

Erforderlich. Die Sammlungs-ID, relativ zu parent, die aufgelistet werden soll. Beispiel: chatrooms

document_id

string

Die vom Kunden zugewiesene Dokument-ID, die für dieses Dokument verwendet werden soll.

Optional. Wenn keine Angabe erfolgt, wird vom Dienst eine ID zugewiesen.

document

Document

Erforderlich. Das zu erstellende Dokument. name darf nicht festgelegt werden.

mask

DocumentMask

Die zurückzugebenden Felder. Wenn nicht festgelegt, werden alle Felder zurückgegeben.

Wenn das Dokument ein Feld enthält, das in dieser Maske nicht vorhanden ist, wird dieses Feld nicht in der Antwort zurückgegeben.

Cursor

Eine Position in einem Abfrageergebnissatz.

Felder
values[]

Value

Die Werte, die eine Position in der Reihenfolge darstellen, in der sie in der Order by-Klausel einer Abfrage vorkommen.

Kann weniger Werte enthalten, als in der Klausel „order by“ angegeben sind.

before

bool

Wenn die Position kurz vor oder direkt nach den angegebenen Werten liegt, relativ zur durch die Abfrage definierten Sortierreihenfolge.

DeleteDocumentRequest

Die Anfrage für Firestore.DeleteDocument.

Felder
name

string

Erforderlich. Der Ressourcenname des Dokuments, das gelöscht werden soll. Im Format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

current_document

Precondition

Eine optionale Vorbedingung für das Dokument. Die Anfrage schlägt fehl, wenn dies festgelegt und vom Zieldokument nicht erfüllt wird.

Dokument

Ein Firestore-Dokument.

Darf 1 MiB bis 4 Byte nicht überschreiten.

Felder
name

string

Der Ressourcenname des Dokuments, z. B. projects/{project_id}/databases/{database_id}/documents/{document_path}.

fields

map<string, Value>

create_time

Timestamp

Nur Ausgabe Der Zeitpunkt, zu dem das Dokument erstellt wurde.

Dieser Wert erhöht sich monoton, wenn ein Dokument gelöscht und dann neu erstellt wird. Er kann auch mit Werten aus anderen Dokumenten und dem read_time einer Abfrage verglichen werden.

update_time

Timestamp

Nur Ausgabe Der Zeitpunkt, zu dem das Dokument zuletzt geändert wurde.

Dieser Wert wird anfangs auf create_time gesetzt und erhöht sich dann bei jeder Änderung am Dokument monoton. Er kann auch mit Werten aus anderen Dokumenten und dem read_time einer Abfrage verglichen werden.

DocumentChange

Ein Document hat sich geändert.

Kann die Folge mehrerer writes, einschließlich Löschungen, sein, die schließlich zu einem neuen Wert für Document geführt haben.

Es können mehrere DocumentChange-Meldungen für dieselbe logische Änderung zurückgegeben werden, wenn mehrere Ziele betroffen sind.

Felder
document

Document

Der neue Status von Document.

Wenn mask festgelegt ist, enthält es nur Felder, die aktualisiert oder hinzugefügt wurden.

target_ids[]

int32

Eine Reihe von Ziel-IDs von Zielen, die mit diesem Dokument übereinstimmen.

removed_target_ids[]

int32

Eine Reihe von Ziel-IDs für Ziele, die nicht mehr mit diesem Dokument übereinstimmen.

DocumentDelete

Ein Document wurde gelöscht.

Kann das Ergebnis mehrerer writes, einschließlich Aktualisierungen, sein. Das letzte Element hat Document gelöscht.

Für denselben logischen Löschvorgang können mehrere DocumentDelete-Nachrichten zurückgegeben werden, wenn mehrere Ziele betroffen sind.

Felder
document

string

Der Ressourcenname der Document, die gelöscht wurde.

removed_target_ids[]

int32

Eine Reihe von Ziel-IDs für Ziele, die zuvor mit dieser Entität übereinstimmten.

read_time

Timestamp

Der Lesezeitstempel, zu dem der Löschvorgang beobachtet wurde.

Ist größer oder gleich dem commit_time des Löschvorgangs.

DocumentMask

Eine Reihe von Feldpfaden in einem Dokument. Wird verwendet, um einen Abruf- oder Aktualisierungsvorgang für ein Dokument auf eine Teilmenge der Felder zu beschränken. Dies unterscheidet sich von Standardfeldmasken, da sie immer auf eine Document beschränkt und die dynamische Natur von Value berücksichtigt wird.

Felder
field_paths[]

string

Die Liste der Feldpfade in der Maske. Eine Syntaxreferenz für Feldpfade finden Sie unter Document.fields.

DocumentRemove

Ein Document wurde aus der Ansicht der Ziele entfernt.

Wird gesendet, wenn das Dokument für ein Ziel nicht mehr relevant und außerhalb des sichtbaren Bereichs ist. Kann anstelle von DocumentDelete oder DocumentChange gesendet werden, wenn der Server den neuen Wert des Dokuments nicht senden kann.

Für denselben logischen Schreib- oder Löschvorgang können mehrere DocumentRemove-Nachrichten zurückgegeben werden, wenn mehrere Ziele betroffen sind.

Felder
document

string

Der Ressourcenname des Document, der nicht mehr angezeigt wird.

removed_target_ids[]

int32

Eine Reihe von Ziel-IDs für Ziele, die zuvor mit diesem Dokument übereinstimmen.

read_time

Timestamp

Der Lesezeitstempel, zu dem die Entfernung beobachtet wurde.

Ist größer oder gleich commit_time der Änderung/Löschung/Entfernung.

DocumentTransform

Die Transformation eines Dokuments.

Felder
document

string

Der Name des zu transformierenden Dokuments.

field_transforms[]

FieldTransform

Die Liste der Transformationen, die in der angegebenen Reihenfolge auf die Felder des Dokuments angewendet werden sollen. Dieses Feld darf nicht leer sein.

FieldTransform

Eine Transformation eines Felds des Dokuments.

Felder
field_path

string

Der Pfad des Felds. Die Syntaxreferenz für Feldpfade finden Sie unter Document.fields.

Union-Feld transform_type. Die Transformation, die auf das Feld angewendet werden soll. Für transform_type ist nur einer der folgenden Werte zulässig:
set_to_server_value

ServerValue

Setzt das Feld auf den angegebenen Serverwert.

increment

Value

Fügt den angegebenen Wert zum aktuellen Wert des Felds hinzu.

Dies muss eine Ganzzahl oder ein doppelter Wert sein. Wenn das Feld keine Ganzzahl oder kein Double-Wert ist oder das Feld noch nicht vorhanden ist, wird das Feld von der Transformation auf den angegebenen Wert festgelegt. Wenn einer der angegebenen Werte oder der aktuelle Feldwert doppelt vorhanden ist, werden beide Werte als Double-Werten interpretiert. Die Doppelarithmetik und die Darstellung von Doppelwerten folgen der IEEE 754-Semantik. Bei einem Überlauf der positiven/negativen Ganzzahlen wird das Feld in die höchste positive/negative Ganzzahl aufgelöst.

maximum

Value

Legt das Feld auf das Maximum des aktuellen und angegebenen Werts fest.

Dies muss eine Ganzzahl oder ein doppelter Wert sein. Wenn das Feld keine Ganzzahl oder kein Double-Wert ist oder das Feld noch nicht vorhanden ist, wird das Feld von der Transformation auf den angegebenen Wert festgelegt. Wenn eine Maximal-Operation angewendet wird, bei der das Feld und der Eingabewert gemischte Typen haben (eins ist eine Ganzzahl und der andere ein Double-Wert), übernimmt das Feld den Typ des größeren Operanden. Wenn die Operanden äquivalent sind (z. B. 3 und 3,0), bleibt das Feld unverändert. 0, 0,0 und -0,0 sind alle Null. Der Höchstwert aus einem gespeicherten Wert von null und einem Eingabewert von null ist immer der gespeicherte Wert. Das Maximum eines beliebigen numerischen Werts x und NaN ist NaN.

minimum

Value

Legt das Feld auf den Mindestwert des aktuellen und des angegebenen Werts fest.

Dies muss eine Ganzzahl oder ein doppelter Wert sein. Wenn das Feld keine Ganzzahl oder kein Double-Wert ist oder das Feld noch nicht vorhanden ist, wird das Feld von der Transformation auf den Eingabewert festgelegt. Wenn eine Operation mit Minimum angewendet wird, bei der das Feld und der Eingabewert gemischte Typen haben (eins ist eine Ganzzahl und der andere ein Double-Wert), übernimmt das Feld den Typ des kleineren Operanden. Wenn die Operanden äquivalent sind (z. B. 3 und 3,0), bleibt das Feld unverändert. 0, 0,0 und -0,0 sind alle Null. Der Mindestwert eines gespeicherten Werts von null und eines Eingabewerts von null ist immer der gespeicherte Wert. Das Minimum aller numerischen Werte x und NaN ist NaN.

append_missing_elements

ArrayValue

Hängen Sie die Elemente der Reihe nach an, wenn sie nicht bereits im aktuellen Feldwert vorhanden sind. Wenn das Feld kein Array ist oder das Feld noch nicht vorhanden ist, wird es zuerst auf das leere Array festgelegt.

Gleichwertige Zahlen unterschiedlicher Typen (z. B. 3L und 3,0) gelten bei der Überprüfung auf fehlende Werte als gleich. NaN ist gleich NaN und Null ist gleich Null. Wenn die Eingabe mehrere äquivalente Werte enthält, wird nur der erste berücksichtigt.

Das entsprechende transform_result ist der Nullwert.

remove_all_from_array

ArrayValue

Entfernt alle angegebenen Elemente aus dem Array im Feld. Wenn das Feld kein Array ist oder das Feld noch nicht vorhanden ist, wird es auf das leere Array festgelegt.

Äquivalente Zahlen der verschiedenen Typen (z.B. 3L und 3.0) gelten bei der Entscheidung, ob ein Element entfernt werden soll, als gleich. NaN ist gleich NaN und Null ist gleich Null. Dadurch werden alle entsprechenden Werte entfernt, falls es Duplikate gibt.

Das entsprechende transform_result ist der Nullwert.

ServerValue

Ein Wert, der vom Server berechnet wird.

Enums
SERVER_VALUE_UNSPECIFIED Nicht angegeben Dieser Wert darf nicht verwendet werden.
REQUEST_TIME Die Zeit, zu der der Server die Anfrage auf eine Millisekunde genau verarbeitet hat. Wird sie in einer Transaktion für mehrere Felder (identische oder unterschiedliche Dokumente) verwendet, erhalten alle Felder denselben Serverzeitstempel.

ExecutionStats

Ausführungsstatistiken für die Abfrage.

Felder
results_returned

int64

Gesamtzahl der zurückgegebenen Ergebnisse, einschließlich Dokumenten, Projektionen, Aggregationsergebnissen und Schlüssel.

execution_duration

Duration

Gesamtzeit für die Ausführung der Abfrage im Back-End.

read_operations

int64

Abrechenbare Lesevorgänge insgesamt.

debug_stats

Struct

Debugging von Statistiken aus der Ausführung der Abfrage Beachten Sie, dass sich die Debugging-Statistiken im Zuge der Weiterentwicklung von Firestore ändern können. It could include: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

Ein Digest aller Dokumente, die einem bestimmten Ziel entsprechen.

Felder
target_id

int32

Die Ziel-ID, auf die dieser Filter angewendet wird.

count

int32

Die Gesamtzahl der Dokumente, die mit target_id übereinstimmen.

Wenn sich die Anzahl der übereinstimmenden Dokumente im Client von der Anzahl der übereinstimmenden Dokumente unterscheidet, muss der Kunde manuell ermitteln, welche Dokumente nicht mehr dem Ziel entsprechen.

Der Kunde kann dazu den Bloomfilter unchanged_names verwenden, um ALLE Dokumentnamen mit dem Filter zu vergleichen. Wenn der Dokumentname NICHT im Filter ist, bedeutet dies, dass das Dokument nicht mehr mit dem Ziel übereinstimmt.

unchanged_names

BloomFilter

Ein Bloomfilter, der trotz seines Namens die UTF-8-Bytecodierungen der Ressourcennamen ALLER Dokumente im Format projects/{project_id}/databases/{database_id}/documents/{document_path} enthält, die mit target_id übereinstimmen.

Dieser Bloomfilter kann nach Ermessen des Servers weggelassen werden, z. B. wenn davon auszugehen ist, dass der Client ihn nicht nutzt, oder wenn die Berechnung oder Übertragung zu aufwendig ist. Clients müssen souverän damit umgehen, dass dieses Feld fehlt, indem sie auf die Logik zurückgreifen, die vor dem Vorhandensein dieses Feldes verwendet wurde. Das heißt, das Ziel ohne Lebenslauftoken erneut hinzufügen, um festzustellen, welche Dokumente im Client-Cache nicht synchron sind.

ExplainMetrics

Messwerte für die Abfrage erklären

Felder
plan_summary

PlanSummary

Informationen zur Planungsphase für die Abfrage.

execution_stats

ExecutionStats

Aggregierte Statistiken aus der Ausführung der Abfrage. Nur vorhanden, wenn ExplainOptions.analyze auf „true“ gesetzt ist.

ExplainOptions

Erläutern Sie Optionen für die Abfrage.

Felder
analyze

bool

Optional. Gibt an, ob diese Abfrage ausgeführt werden soll.

Ist dieser Wert auf „false“ gesetzt (Standardeinstellung), wird die Abfrage geplant und es werden nur Messwerte aus den Planungsphasen zurückgegeben.

Bei „true“ wird die Abfrage geplant und ausgeführt und die vollständigen Abfrageergebnisse sowie Messwerte für die Planungs- und Ausführungsphase zurückgegeben.

GetDocumentRequest

Die Anfrage für Firestore.GetDocument.

Felder
name

string

Erforderlich. Der Ressourcenname des abzurufenden Dokuments. Im Format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

mask

DocumentMask

Die zurückzugebenden Felder. Wenn nicht festgelegt, werden alle Felder zurückgegeben.

Wenn das Dokument ein Feld enthält, das in dieser Maske nicht vorhanden ist, wird dieses Feld nicht in der Antwort zurückgegeben.

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

bytes

Liest das Dokument in einer Transaktion.

read_time

Timestamp

Liest die Version des Dokuments zum angegebenen Zeitpunkt.

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.

ListCollectionIdsRequest

Die Anfrage für Firestore.ListCollectionIds.

Felder
parent

string

Erforderlich. Das übergeordnete Dokument. Im Format: projects/{project_id}/databases/{database_id}/documents/{document_path}. Beispiel: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

page_size

int32

Die maximale Anzahl von zurückzugebenden Ergebnissen.

page_token

string

Ein Seitentoken. Muss ein Wert aus ListCollectionIdsResponse sein.

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

Timestamp

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.

ListCollectionIdsResponse

Die Antwort von Firestore.ListCollectionIds.

Felder
collection_ids[]

string

Die Sammlungs-IDs.

next_page_token

string

Ein Seitentoken, mit dem die Liste fortgesetzt werden kann.

ListDocumentsRequest

Die Anfrage für Firestore.ListDocuments.

Felder
parent

string

Erforderlich. Der Name der übergeordneten Ressource. Im Format: projects/{project_id}/databases/{database_id}/documents oder projects/{project_id}/databases/{database_id}/documents/{document_path}.

Beispiel: projects/my-project/databases/my-database/documents oder projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

Optional. Die Sammlungs-ID, relativ zu parent, die aufgelistet werden soll.

Beispiel: chatrooms oder messages.

Dies ist optional. Wenn keine Angabe erfolgt, listet Firestore Dokumente aus allen Sammlungen unter der angegebenen parent auf.

page_size

int32

Optional. Die maximale Anzahl von Dokumenten, die in einer einzelnen Antwort zurückgegeben werden sollen.

Firestore gibt möglicherweise weniger als diesen Wert zurück.

page_token

string

Optional. Ein Seitentoken, das von einer vorherigen ListDocuments-Antwort empfangen wurde.

Geben Sie diese an, um die nachfolgende Seite abzurufen. Beim Paginieren müssen alle anderen Parameter (mit Ausnahme von page_size) mit den Werten übereinstimmen, die in der Anfrage festgelegt wurden, mit der das Seitentoken generiert wurde.

order_by

string

Optional. Die optionale Reihenfolge der zurückzugebenden Dokumente.

Beispiel: priority desc, __name__ desc.

Dies spiegelt die ORDER BY wider, die in Firestore-Abfragen verwendet wird, aber in einer Stringdarstellung. Wenn keine vorhanden sind, werden die Dokumente nach __name__ ASC sortiert.

mask

DocumentMask

Optional. Die zurückzugebenden Felder. Wenn nicht festgelegt, werden alle Felder zurückgegeben.

Wenn ein Dokument ein Feld enthält, das in dieser Maske nicht vorhanden ist, wird dieses Feld nicht in der Antwort zurückgegeben.

show_missing

bool

Gibt an, ob in der Liste fehlende Dokumente angezeigt werden sollen.

Ein Dokument fehlt, wenn es nicht existiert, aber darunter sind Unterdokumente verschachtelt. Wenn dieser Wert auf „true“ gesetzt ist, werden solche Dokumente mit einem Schlüssel zurückgegeben. Es sind jedoch keine Felder, create_time oder update_time festgelegt.

Anfragen mit show_missing dürfen nicht where oder order_by enthalten.

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

bytes

Führt den Lesevorgang als Teil einer bereits aktiven Transaktion aus.

read_time

Timestamp

Führe den Lesevorgang zur angegebenen Zeit aus.

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.

ListDocumentsResponse

Die Antwort für Firestore.ListDocuments.

Felder
documents[]

Document

Die gefundenen Dokumente.

next_page_token

string

Ein Token zum Abrufen der nächsten Seite mit Dokumenten.

Wenn dieses Feld weggelassen wird, gibt es keine nachfolgenden Seiten.

ListenRequest

Eine Anfrage für Firestore.Listen

Felder
database

string

Erforderlich. Der Datenbankname. Im Format: projects/{project_id}/databases/{database_id}.

labels

map<string, string>

Labels, die mit dieser Zieländerung verknüpft sind.

Union-Feld target_change. Die unterstützten Zieländerungen. Für target_change ist nur einer der folgenden Werte zulässig:
add_target

Target

Ein Ziel, das diesem Stream hinzugefügt werden soll.

remove_target

int32

Die ID eines Ziels, das aus diesem Stream entfernt werden soll.

ListenResponse

Die Antwort für Firestore.Listen.

Felder
Union-Feld response_type. Die unterstützten Antworten. Für response_type ist nur einer der folgenden Werte zulässig:
target_change

TargetChange

Die Ziele haben sich geändert.

document_change

DocumentChange

Ein Document hat sich geändert.

document_delete

DocumentDelete

Ein Document wurde gelöscht.

document_remove

DocumentRemove

Ein Document wurde aus einem Ziel entfernt, da er für dieses Ziel nicht mehr relevant ist.

filter

ExistenceFilter

Ein Filter, der auf den Satz von Dokumenten angewendet wird, die zuvor für das angegebene Ziel zurückgegeben wurden.

Wird zurückgegeben, wenn Dokumente möglicherweise aus dem angegebenen Ziel entfernt wurden, die genauen Dokumente jedoch nicht bekannt sind.

MapValue

Ein Kartenwert.

Felder
fields

map<string, Value>

Die Felder der Karte

Die Zuordnungsschlüssel stellen Feldnamen dar. Feldnamen, die mit dem regulären Ausdruck __.*__ übereinstimmen, sind reserviert. Reservierte Feldnamen sind nur in bestimmten dokumentierten Kontexten zulässig. Die als UTF-8 dargestellten Kartenschlüssel dürfen 1.500 Byte nicht überschreiten und dürfen nicht leer sein.

PartitionQueryRequest

Die Anfrage für Firestore.PartitionQuery.

Felder
parent

string

Erforderlich. Der Name der übergeordneten Ressource. Im Format: projects/{project_id}/databases/{database_id}/documents. Dokumentressourcennamen werden nicht unterstützt. Es können nur Namen für Datenbankressourcen angegeben werden.

partition_count

int64

Die gewünschte maximale Anzahl von Partitionspunkten. Die Partitionen können über mehrere Ergebnisseiten hinweg zurückgegeben werden. Die Zahl muss positiv sein. Die tatsächliche Anzahl der zurückgegebenen Partitionen kann geringer sein.

Dieser kann beispielsweise auf ein weniger als die Anzahl der auszuführenden parallelen Abfragen oder beim Ausführen eines Datenpipelinejobs um eins weniger als die Anzahl der verfügbaren Worker oder Recheninstanzen festgelegt werden.

page_token

string

Der next_page_token-Wert, der von einem vorherigen Aufruf an PartitionQuery zurückgegeben wurde und zum Abrufen weiterer Ergebnisse verwendet werden kann. Es gibt keine Garantien für die Reihenfolge zwischen den Ergebnissätzen. Wenn also mehrere Ergebnissätze verwendet werden, müssen die verschiedenen Ergebnissätze zusammengeführt werden.

Beispiel: Zwei aufeinanderfolgende Aufrufe mit einem page_token können Folgendes zurückgeben:

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

Um einen vollständigen Ergebnissatz zu erhalten, geordnet nach den Ergebnissen der an PartitionQuery übergebenen Abfrage, sollten die Ergebnissätze zusammengeführt werden: Cursor A, Cursor B, Cursor M, Cursor Q, Cursor U, Cursor W.

page_size

int32

Die maximale Anzahl von Partitionen, die in diesem Aufruf zurückgegeben werden sollen, vorbehaltlich partition_count.

Wenn beispielsweise partition_count = 10 und page_size = 8 ist, gibt der erste Aufruf von „PartitionQuery“ bis zu acht Partitionen und einen next_page_token zurück, wenn mehr Ergebnisse vorhanden sind. Ein zweiter Aufruf von PartitionQuery gibt bis zu 2 Partitionen zurück, um die insgesamt in partition_count angegebenen 10 Partitionen abzuschließen.

Union-Feld query_type. Die zu partitionierende Abfrage. Für query_type ist nur einer der folgenden Werte zulässig:
structured_query

StructuredQuery

Eine strukturierte Abfrage. In der Abfrage muss eine Sammlung mit allen Nachfolgerelementen angegeben und nach Namen aufsteigend sortiert werden. Andere Filter, Sortierungen nach, Grenzwerte, Offsets und Start-/End-Cursor werden nicht unterstützt.

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

Timestamp

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.

PartitionQueryResponse

Die Antwort für Firestore.PartitionQuery.

Felder
partitions[]

Cursor

Partitionsergebnisse. Jede Partition ist ein Aufteilungspunkt, der von RunQuery als Start- oder Endpunkt für die Abfrageergebnisse verwendet werden kann. RunQuery-Anfragen müssen mit der Abfrage gestellt werden, die für diese PartitionQuery-Anfrage angegeben wurde. Die Partitions-Cursor werden in derselben Reihenfolge angeordnet wie die Ergebnisse der an PartitionQuery übergebenen Abfrage.

Wenn eine PartitionQuery-Anfrage beispielsweise die Partitionscursor A und B zurückgibt, wird bei der Ausführung der folgenden drei Abfragen der gesamte Ergebnissatz der ursprünglichen Abfrage zurückgegeben:

  • Abfrage, Ende_bei A
  • Abfrage, Start_bei A, Ende_bei B
  • Abfrage, Start bei B

Ein leeres Ergebnis kann darauf hindeuten, dass die Abfrage zu wenige Ergebnisse zum Partitionieren hat oder dass die Partitionierung der Abfrage noch nicht unterstützt wird.

next_page_token

string

Ein Seitentoken, mit dem eine zusätzliche Ergebnismenge angefordert werden kann, bis zu der durch partition_count in der PartitionQuery-Anfrage angegebenen Anzahl. Wenn das Feld leer ist, gibt es keine weiteren Ergebnisse.

PlanSummary

Informationen zur Planungsphase für die Abfrage.

Felder
indexes_used[]

Struct

Die für die Abfrage ausgewählten Indexe. For example: [ {"query_scope": "Collection", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, name ASC)"} ]

Voraussetzung

Eine Vorbedingung für ein Dokument, die für bedingte Vorgänge verwendet wird.

Felder
Union-Feld condition_type. Der Typ der Vorbedingung. Für condition_type ist nur einer der folgenden Werte zulässig:
exists

bool

Wenn der Wert auf true gesetzt ist, muss das Zieldokument vorhanden sein. Wenn der Wert auf false gesetzt ist, darf das Zieldokument nicht vorhanden sein.

update_time

Timestamp

Wenn festgelegt, muss das Zieldokument vorhanden und zu diesem Zeitpunkt zuletzt aktualisiert worden sein. Der Zeitstempel muss auf Mikrosekunden ausgerichtet sein.

RollbackRequest

Die Anfrage für Firestore.Rollback.

Felder
database

string

Erforderlich. Der Datenbankname. Im Format: projects/{project_id}/databases/{database_id}.

transaction

bytes

Erforderlich. Die Transaktion, für die ein Rollback durchgeführt werden soll.

RunAggregationQueryRequest

Die Anfrage für Firestore.RunAggregationQuery.

Felder
parent

string

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

explain_options

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:
structured_aggregation_query

StructuredAggregationQuery

Eine Aggregationsabfrage.

Union-Feld consistency_selector. Als Konsistenzmodus für die Abfrage wird standardmäßig „Strong Consistency“ verwendet. Für consistency_selector ist nur einer der folgenden Werte zulässig:
transaction

bytes

Führen Sie die Aggregation innerhalb einer bereits aktiven Transaktion aus.

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

new_transaction

TransactionOptions

Startet im Rahmen der Abfrage eine neue Transaktion und ist standardmäßig schreibgeschützt.

Die neue Transaktions-ID wird als erste Antwort im Stream zurückgegeben.

read_time

Timestamp

Führt die Abfrage zum angegebenen Zeitstempel aus.

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.

RunAggregationQueryResponse

Die Antwort für Firestore.RunAggregationQuery.

Felder
result

AggregationResult

Ein einzelnes Aggregationsergebnis.

Nicht vorhanden, wenn ein teilweiser Fortschritt gemeldet wird.

transaction

bytes

Die Transaktion, die im Rahmen dieser Anfrage gestartet wurde.

Ist nur in der ersten Antwort vorhanden, wenn die Anfrage den Start einer neuen Transaktion angefordert hat.

read_time

Timestamp

Der Zeitpunkt, zu dem das aggregierte Ergebnis berechnet wurde. Dieser Wert erhöht sich immer kontinuierlich. In diesem Fall hat sich das vorherige Aggregationsergebnis im Ergebnisstream garantiert zwischen read_time und diesem nicht geändert.

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

explain_metrics

ExplainMetrics

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

RunQueryRequest

Die Anfrage für Firestore.RunQuery.

Felder
parent

string

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

explain_options

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:
structured_query

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

bytes

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.

new_transaction

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.

read_time

Timestamp

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.

RunQueryResponse

Die Antwort für Firestore.RunQuery.

Felder
transaction

bytes

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.

document

Document

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

read_time

Timestamp

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 read_time und diesem Dokument nicht geändert haben.

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

skipped_results

int32

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

explain_metrics

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

bool

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

StructuredAggregationQuery

Firestore-Abfrage zum Ausführen einer Aggregation über einen StructuredQuery

Felder
aggregations[]

Aggregation

Optional. Reihe von Aggregationen, die auf die Ergebnisse von structured_query angewendet werden sollen.

Benötigt:

  • Mindestens eine und maximal fünf Aggregationen pro Abfrage.
Union-Feld query_type. Die zu aggregierende Basisabfrage. Für query_type ist nur einer der folgenden Werte zulässig:
structured_query

StructuredQuery

Verschachtelte strukturierte Abfrage.

Aggregation

Definiert eine Aggregation, die ein einzelnes Ergebnis generiert.

Felder
alias

string

Optional. Optionaler Name des Felds, in dem das Ergebnis der Aggregation gespeichert werden soll.

Wenn nicht angegeben, wählt Firestore einen Standardnamen im Format field_<incremental_id++> aus. Beispiel:

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 (
  ...
);

wird zu:

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 (
  ...
);

Benötigt:

  • Muss für alle Aggregationsaliasse eindeutig sein.
  • Die Einschränkungen von document field name einhalten.
Union-Feld operator. Der durchzuführende Aggregationstyp (erforderlich). Für operator ist nur einer der folgenden Werte zulässig:
count

Count

Anzahl-Aggregator.

sum

Sum

Summen-Aggregator.

avg

Avg

Durchschnittlicher Aggregator.

Durchschn.

Durchschnitt der Werte im angeforderten Feld.

  • Nur numerische Werte werden aggregiert. Alle nicht numerischen Werte, einschließlich NULL, werden übersprungen.

  • Wenn die aggregierten Werte NaN enthalten, wird NaN zurückgegeben. Die Unendlichkeitsberechnung entspricht den IEEE-754-Standards.

  • Wenn der aggregierte Wertesatz leer ist, wird NULL zurückgegeben.

  • Gibt das Ergebnis immer als Double zurück.

Felder
field

FieldReference

Das Feld, für das die Daten aggregiert werden sollen.

Anzahl

Anzahl der Dokumente, die der Abfrage entsprechen.

Die Aggregatfunktion COUNT(*) gilt für das gesamte Dokument, daher ist kein Feldverweis erforderlich.

Felder
up_to

Int64Value

Optional. Optionale Einschränkung der maximalen Anzahl von zu zählenden Dokumenten.

Dies bietet eine Möglichkeit, eine Obergrenze für die Anzahl der zu scannenden Dokumente festzulegen, um Latenz und Kosten zu begrenzen.

„Nicht angegeben“ wird als keine Grenze interpretiert.

Allgemeines Beispiel:

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

Benötigt:

  • Muss größer als null sein, sofern vorhanden.

Summe

Summe der Werte des angeforderten Felds.

  • Nur numerische Werte werden aggregiert. Alle nicht numerischen Werte, einschließlich NULL, werden übersprungen.

  • Wenn die aggregierten Werte NaN enthalten, wird NaN zurückgegeben. Die Unendlichkeitsberechnung entspricht den IEEE-754-Standards.

  • Wenn der aggregierte Wert leer ist, wird 0 zurückgegeben.

  • Gibt eine 64-Bit-Ganzzahl zurück, wenn alle aggregierten Zahlen Ganzzahlen sind und das Summenergebnis nicht überläuft. Andernfalls wird das Ergebnis als Double zurückgegeben. Auch wenn alle aggregierten Werte Ganzzahlen sind, wird das Ergebnis als Double zurückgegeben, wenn es nicht in eine vorzeichenbehaftete 64-Bit-Ganzzahl passt. In diesem Fall geht die Genauigkeit des zurückgegebenen Werts verloren.

  • Bei einem Unterlauf ist die Gleitkommaaggregation nicht deterministisch. Wenn also dieselbe Abfrage wiederholt ohne Änderungen an den zugrunde liegenden Werten ausgeführt wird, kann dies jedes Mal zu leicht unterschiedlichen Ergebnissen führen. In diesen Fällen sollten die Werte als Ganzzahlen anstelle von Gleitkommazahlen gespeichert werden.

Felder
field

FieldReference

Das Feld, für das die Daten aggregiert werden sollen.

StructuredQuery

Eine Firestore-Abfrage.

Die Abfragephasen werden in der folgenden Reihenfolge ausgeführt: 1. von 2. wobei 3. 4. order_by + start_at + end_at 5. offset 6. Limit auswählen

Felder
select

Projection

Optionale Teilmenge der zurückzugebenden Felder.

Sie dient als DocumentMask für die von einer Abfrage zurückgegebenen Dokumente. Wenn dieser Wert nicht festgelegt ist, wird davon ausgegangen, dass der Aufrufer alle Felder zurückgeben möchte.

from[]

CollectionSelector

Die abzufragenden Sammlungen.

where

Filter

Der Filter, der angewendet werden soll.

order_by[]

Order

Die Reihenfolge, die auf die Abfrageergebnisse angewendet werden soll.

Mit Firestore können Aufrufer eine vollständige, teilweise oder gar keine Sortierung angeben. In allen Fällen garantiert Firestore eine stabile Reihenfolge anhand der folgenden Regeln:

  • Der order_by ist erforderlich, um auf alle Felder zu verweisen, die mit einem Ungleichheitsfilter verwendet werden.
  • Alle Felder, die im order_by enthalten sein müssen, aber noch nicht vorhanden sind, werden in lexikografischer Reihenfolge des Feldnamens angehängt.
  • Wenn für __name__ kein Auftrag angegeben ist, wird er standardmäßig angehängt.

Die Felder werden mit derselben Sortierrichtung wie die zuletzt angegebene Reihenfolge oder „ASCENDING“ angehängt, wenn keine Reihenfolge angegeben wurde. Beispiel:

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

Cursor

Ein potenzielles Präfix einer Position in der Ergebnismenge, an der die Abfrage gestartet werden soll.

Die Reihenfolge der Ergebnisse basiert auf der ORDER BY-Klausel der ursprünglichen Abfrage.

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

Die Ergebnisse dieser Abfrage sind nach (b ASC, __name__ ASC) sortiert.

Cursor können entweder auf die vollständige Reihenfolge oder ein Präfix des Standorts verweisen. Es können jedoch nicht mehr Felder als im angegebenen ORDER BY angegeben werden.

Ausgehend vom obigen Beispiel hat das Anhängen der folgenden Startcursor unterschiedliche Auswirkungen:

  • START BEFORE (2, /k/123): Die Abfrage wird direkt vor a = 1 AND b > 2 AND __name__ > /k/123 gestartet.
  • START AFTER (10): Die Abfrage wird direkt nach a = 1 AND b > 10 gestartet.

Im Gegensatz zu OFFSET, bei dem das Scannen über die ersten N Ergebnisse zum Überspringen erforderlich ist, ermöglicht ein Startcursor die Abfrage an einer logischen Position. Diese Position muss nicht mit einem tatsächlichen Ergebnis übereinstimmen. Von dieser Position aus wird das nächste Dokument vorwärts gespult.

Benötigt:

  • Die Anzahl der Werte darf nicht größer sein als die Anzahl der Felder, die in der ORDER BY-Klausel angegeben sind.
end_at

Cursor

Ein potenzielles Präfix einer Position im Ergebnissatz, bei der die Abfrage beendet werden soll.

Dies ist ähnlich wie START_AT, legt jedoch nicht die Startposition, sondern die Endposition fest.

Benötigt:

  • Die Anzahl der Werte darf nicht größer sein als die Anzahl der Felder, die in der ORDER BY-Klausel angegeben sind.
offset

int32

Die Anzahl der Dokumente, die übersprungen werden sollen, bevor das erste Ergebnis zurückgegeben wird.

Dies gilt nach den von WHERE, START AT und END AT angegebenen Einschränkungen, aber vor der LIMIT-Klausel.

Benötigt:

  • Der Wert muss größer oder gleich null sein, falls angegeben.
limit

Int32Value

Die maximale Anzahl von zurückzugebenden Ergebnissen.

Wird nach allen anderen Einschränkungen angewendet.

Benötigt:

  • Der Wert muss größer oder gleich null sein, falls angegeben.
find_nearest

FindNearest

Optional. Eine potenzielle Suche nach den nächstgelegenen Nachbarn.

Wird nach allen anderen Filtern und Sortierungen angewendet.

Findet die Vektoreinbettungen, die dem angegebenen Abfragevektor am nächsten sind.

CollectionSelector

Eine Auswahl aus einer Sammlung, z. B. messages as m1.

Felder
collection_id

string

Die Sammlungs-ID. Wenn festgelegt, werden nur Sammlungen mit dieser ID ausgewählt.

all_descendants

bool

Bei „false“ werden nur Sammlungen ausgewählt, die der parent, die in der enthaltenden RunQueryRequest angegeben sind, unmittelbar untergeordnet sind. Bei „true“ werden alle untergeordneten Sammlungen ausgewählt.

CompositeFilter

Ein Filter, der mehrere andere Filter mithilfe des angegebenen Operators zusammenführt.

Felder
op

Operator

Der Operator zum Kombinieren mehrerer Filter.

filters[]

Filter

Die Liste der zu kombinierenden Filter.

Benötigt:

  • Mindestens ein Filter ist vorhanden.

Operator

Operator für zusammengesetzte Filter

Enums
OPERATOR_UNSPECIFIED Nicht angegeben Dieser Wert darf nicht verwendet werden.
AND Dokumente müssen allen kombinierten Filtern entsprechen.
OR Dokumente müssen mindestens einem der kombinierten Filter entsprechen.

Richtung

Eine Sortierrichtung.

Enums
DIRECTION_UNSPECIFIED Nicht angegeben
ASCENDING Aufsteigend.
DESCENDING Absteigend.

FieldFilter

Ein Filter für ein bestimmtes Feld.

Felder
field

FieldReference

Das Feld, nach dem gefiltert werden soll.

op

Operator

Operator, nach dem gefiltert werden soll.

value

Value

Wert, mit dem verglichen werden soll

Operator

Ein Feldfilteroperator.

Enums
OPERATOR_UNSPECIFIED Nicht angegeben Dieser Wert darf nicht verwendet werden.
LESS_THAN

Der angegebene field ist kleiner als der angegebene value.

Benötigt:

  • Diese field stehen bei order_by an erster Stelle.
LESS_THAN_OR_EQUAL

Der angegebene field ist kleiner oder gleich dem angegebenen value.

Benötigt:

  • Diese field stehen bei order_by an erster Stelle.
GREATER_THAN

Die angegebene field ist größer als die angegebene value.

Benötigt:

  • Diese field stehen bei order_by an erster Stelle.
GREATER_THAN_OR_EQUAL

Der angegebene field ist größer oder gleich dem angegebenen value.

Benötigt:

  • Diese field stehen bei order_by an erster Stelle.
EQUAL Die angegebene field ist gleich der angegebenen value.
NOT_EQUAL

Die angegebene field ist nicht gleich der angegebenen value.

Benötigt:

  • Keine anderen NOT_EQUAL, NOT_IN, IS_NOT_NULL oder IS_NOT_NAN.
  • Dieses field steht in der order_by an erster Stelle.
ARRAY_CONTAINS Die angegebene field ist ein Array, das den angegebenen value enthält.
IN

Die angegebene field ist gleich mindestens ein Wert im angegebenen Array.

Benötigt:

  • Diese value ist eine nicht leere ArrayValue, vorbehaltlich Disjunktionslimits.
  • Keine NOT_IN-Filter in derselben Abfrage.
ARRAY_CONTAINS_ANY

Die angegebene field ist ein Array, das einen der Werte im gegebenen Array enthält.

Benötigt:

  • Diese value ist eine nicht leere ArrayValue, vorbehaltlich Disjunktionslimits.
  • Keine anderen ARRAY_CONTAINS_ANY-Filter in derselben Disjunktion.
  • Keine NOT_IN-Filter in derselben Abfrage.
NOT_IN

Der Wert von field ist nicht im angegebenen Array enthalten.

Benötigt:

  • Diese value ist eine nicht leere ArrayValue mit höchstens 10 Werten.
  • Keine anderen OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL oder IS_NOT_NAN.
  • Dieses field steht in der order_by an erster Stelle.

FieldReference

Ein Verweis auf ein Feld in einem Dokument, z. B. stats.operations.

Felder
field_path

string

Ein Verweis auf ein Feld in einem Dokument.

Benötigt:

  • MUSS ein durch Punkte getrennter String (.) sein, wobei jedes Segment den Einschränkungen von document field name entspricht.

Filtern

Ein Filter.

Felder
Union-Feld filter_type. Der Typ des Filters. Für filter_type ist nur einer der folgenden Werte zulässig:
composite_filter

CompositeFilter

Zusammengesetzter Filter

field_filter

FieldFilter

Ein Filter für ein Dokumentfeld.

unary_filter

UnaryFilter

Ein Filter, der genau ein Argument annimmt.

FindNearest

Konfiguration für „Nächstgelegene Neighbors“-Suche.

Felder
vector_field

FieldReference

Erforderlich. Ein indexiertes Vektorfeld, nach dem gesucht werden soll. Es können nur Dokumente zurückgegeben werden, die Vektoren enthalten, deren Dimensionalität mit dem query_vector übereinstimmt.

query_vector

Value

Erforderlich. Der Abfragevektor, nach dem gesucht wird. Darf ein Vektor mit maximal 2.048 Dimensionen sein.

distance_measure

DistanceMeasure

Erforderlich. Die zu verwendende Distanzmessung (erforderlich).

limit

Int32Value

Erforderlich. Die Anzahl der nächsten Nachbarn, die zurückgegeben werden sollen. Muss eine positive Ganzzahl bis 1.000 sein.

DistanceMeasure

Die Entfernungsmessung, die beim Vergleich von Vektoren verwendet werden soll.

Enums
DISTANCE_MEASURE_UNSPECIFIED Sollte nicht festgelegt werden.
EUCLIDEAN Misst die EUCLIDEAN-Entfernung zwischen den Vektoren. Weitere Informationen finden Sie auf der Seite Euklidisch.
COSINE Vergleicht Vektoren basierend auf dem Winkel zwischen ihnen, sodass Sie Ähnlichkeiten messen können, die nicht auf der Größe der Vektoren basieren. Wir empfehlen die Verwendung von DOT_PRODUCT mit normalisierten Vektoren der Einheit anstelle der COSINE-Entfernung, die mathematisch gleichwertig mit einer besseren Leistung ist. Weitere Informationen finden Sie unter Kosinus-Ähnlichkeit.
DOT_PRODUCT Ähnlich wie der Kosinus, wird aber von der Größe der Vektoren beeinflusst. Weitere Informationen finden Sie unter Dot Product.

Auftrag

Eine Bestellung auf einem Feld.

Felder
field

FieldReference

Das Feld, nach dem sortiert werden soll.

direction

Direction

Die Richtung, nach der sortiert werden soll. Die Standardeinstellung ist ASCENDING.

Projektion

Die Projektion der zurückzugebenden Felder des Dokuments.

Felder
fields[]

FieldReference

Die zurückzugebenden Felder.

Wenn leer, werden alle Felder zurückgegeben. Um nur den Namen des Dokuments zurückzugeben, verwenden Sie ['__name__'].

UnaryFilter

Ein Filter mit einem einzelnen Operanden.

Felder
op

Operator

Der anzuwendende unäre Operator.

Union-Feld operand_type. Das Argument für den Filter. Für operand_type ist nur einer der folgenden Werte zulässig:
field

FieldReference

Das Feld, auf das der Operator angewendet werden soll.

Operator

Ein unärer Operator.

Enums
OPERATOR_UNSPECIFIED Nicht angegeben Dieser Wert darf nicht verwendet werden.
IS_NAN Der angegebene field ist gleich NaN.
IS_NULL Der angegebene field ist gleich NULL.
IS_NOT_NAN

Der angegebene field ist nicht gleich NaN.

Benötigt:

  • Keine anderen NOT_EQUAL, NOT_IN, IS_NOT_NULL oder IS_NOT_NAN.
  • Dieses field steht in der order_by an erster Stelle.
IS_NOT_NULL

Der angegebene field ist nicht gleich NULL.

Benötigt:

  • Ein einzelnes NOT_EQUAL-, NOT_IN-, IS_NOT_NULL- oder IS_NOT_NAN-Objekt.
  • Dieses field steht in der order_by an erster Stelle.

Target

Eine Spezifikation einer Reihe von Dokumenten, die überwacht werden sollen.

Felder
target_id

int32

Die Ziel-ID, die das Ziel im Stream identifiziert. Muss eine positive Zahl sein, die nicht null ist.

Wenn target_id 0 (oder nicht angegeben) ist, weist der Server diesem Ziel eine ID zu und gibt diese in einem TargetChange::ADD-Ereignis zurück. Sobald ein Ziel mit target_id=0 hinzugefügt wird, müssen alle nachfolgenden Ziele ebenfalls die target_id=0 haben. Wenn eine AddTarget-Anfrage mit target_id != 0 an den Server gesendet wird, nachdem ein Ziel mit target_id=0 hinzugefügt wurde, sendet der Server sofort eine Antwort mit einem TargetChange::Remove-Ereignis.

Wenn der Client mehrere AddTarget-Anfragen ohne ID sendet, ist die Reihenfolge der in TargetChage.target_ids zurückgegebenen IDs nicht definiert. Daher sollten Clients eine Ziel-ID bereitstellen, anstatt sich darauf zu verlassen, dass der Server eine Ziel-ID zuweist.

Wenn target_id ungleich null ist, darf in diesem Stream kein aktives Ziel mit derselben ID vorhanden sein.

once

bool

Ob das Ziel entfernt werden sollte, sobald es aktuell und konsistent ist.

expected_count

Int32Value

Die Anzahl der Dokumente, die beim Lebenslauftoken oder der Lesezeit zuletzt mit der Abfrage übereinstimmten.

Dieser Wert ist nur relevant, wenn resume_type angegeben wird. Wenn dieser Wert vorhanden ist und größer als null ist, signalisiert der Kunde, dass ExistenceFilter.unchanged_names in der Antwort enthalten sein soll.

Union-Feld target_type. Der Typ des Ziels, das angehört werden soll. Für target_type ist nur einer der folgenden Werte zulässig:
query

QueryTarget

Ein durch eine Abfrage angegebenes Ziel.

documents

DocumentsTarget

Ein Ziel, das durch eine Reihe von Dokumentnamen angegeben wird.

Union-Feld resume_type. Startzeitpunkt für Audiowiedergabe

Wenn angegeben, werden nur die übereinstimmenden Dokumente zurückgegeben, die NACH dem resume_token oder read_time aktualisiert wurden. Andernfalls werden alle übereinstimmenden Dokumente vor allen nachfolgenden Änderungen zurückgegeben. Für resume_type ist nur einer der folgenden Werte zulässig:

resume_token

bytes

Ein Fortsetzungstoken aus einem früheren TargetChange für ein identisches Ziel.

Die Verwendung eines Lebenslauftokens mit einem anderen Ziel wird nicht unterstützt und kann fehlschlagen.

read_time

Timestamp

Wiedergabe nach einem bestimmten read_time starten.

Der Client muss den Status der übereinstimmenden Dokumente zu diesem Zeitpunkt kennen.

DocumentsTarget

Ein Ziel, das durch eine Reihe von Dokumentnamen angegeben wird.

Felder
documents[]

string

Die Namen der abzurufenden Dokumente. Im Format: projects/{project_id}/databases/{database_id}/documents/{document_path}. Die Anfrage schlägt fehl, wenn eines der Dokumente keine untergeordnete Ressource des angegebenen database ist. Doppelte Namen werden entfernt.

QueryTarget

Ein durch eine Abfrage angegebenes Ziel.

Felder
parent

string

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

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

StructuredQuery

Eine strukturierte Abfrage.

TargetChange

Die beobachteten Ziele haben sich geändert.

Felder
target_change_type

TargetChangeType

Die Art der durchgeführten Änderung.

target_ids[]

int32

Die Ziel-IDs von Zielen, die sich geändert haben.

Wenn das Feld leer ist, wird die Änderung für alle Ziele übernommen.

Die Reihenfolge der Ziel-IDs ist nicht definiert.

cause

Status

Der Fehler, der zu dieser Änderung geführt hat, falls zutreffend.

resume_token

bytes

Ein Token, mit dem der Stream für die angegebene target_ids oder für alle Ziele fortgesetzt werden kann, wenn target_ids leer ist.

Wird nicht bei jeder Zieländerung festgelegt.

read_time

Timestamp

Die konsistente read_time für die angegebene target_ids (ausgelassen, wenn sich die target_ids nicht zu einem konsistenten Snapshot befinden).

Der Stream sendet garantiert einen read_time, bei dem target_ids leer ist, wenn der gesamte Stream einen neuen konsistenten Snapshot erreicht. Nachrichten vom Typ ADD, CURRENT und RESET führen (letztendlich) garantiert zu einem neuen konsistenten Snapshot, Nachrichten vom Typ NO_CHANGE und REMOVE nicht.

Für einen bestimmten Stream erhöht sich read_time garantiert kontinuierlich.

TargetChangeType

Die Art der Änderung

Enums
NO_CHANGE Es wurde keine Änderung vorgenommen. Wird nur zum Senden einer aktualisierten resume_token verwendet.
ADD Die Ziele wurden hinzugefügt.
REMOVE Die Ziele wurden entfernt.
CURRENT

Die Ziele spiegeln alle Änderungen wider, die vorgenommen wurden, bevor die Ziele dem Stream hinzugefügt wurden.

Sie wird nach oder mit einem read_time gesendet, der größer oder gleich dem Zeitpunkt ist, zu dem die Ziele hinzugefügt wurden.

Listener können auf diese Änderung warten, wenn Read-after-Write-Semantik gewünscht wird.

RESET

Die Ziele wurden zurückgesetzt und bei nachfolgenden Änderungen wird ein neuer Anfangszustand für die Ziele zurückgegeben.

Wenn der Ausgangszustand abgeschlossen ist, wird CURRENT auch dann zurückgegeben, wenn das Ziel zuvor als CURRENT angegeben wurde.

TransactionOptions

Optionen zum Erstellen einer neuen Transaktion.

Felder
Union-Feld mode. Der Modus der Transaktion. Für mode ist nur einer der folgenden Werte zulässig:
read_only

ReadOnly

Die Transaktion kann nur für Lesevorgänge verwendet werden.

read_write

ReadWrite

Die Transaktion kann sowohl für Lese- als auch für Schreibvorgänge verwendet werden.

ReadOnly

Optionen für eine Transaktion, die nur zum Lesen von Dokumenten verwendet werden kann.

Felder
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:
read_time

Timestamp

Liest Dokumente zum angegebenen Zeitpunkt.

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.

ReadWrite

Optionen für eine Transaktion, die zum Lesen und Schreiben von Dokumenten verwendet werden kann.

Firestore lässt keine Authentifizierungsanfragen von Drittanbietern zu, Lese-/Schreibtransaktionen zu erstellen.

Felder
retry_transaction

bytes

Eine optionale Transaktion, die wiederholt werden soll.

UpdateDocumentRequest

Die Anfrage für Firestore.UpdateDocument.

Felder
document

Document

Erforderlich. Das aktualisierte Dokument. Erstellt das Dokument, falls es noch nicht vorhanden ist.

update_mask

DocumentMask

Die zu aktualisierenden Felder. Keiner der Feldpfade in der Maske darf einen reservierten Namen enthalten.

Wenn das Dokument auf dem Server vorhanden ist und Felder enthält, auf die in der Maske nicht verwiesen wird, bleiben diese unverändert. Felder, auf die in der Maske verwiesen wird, die im Eingabedokument aber nicht vorhanden sind, werden auf dem Server aus dem Dokument gelöscht.

mask

DocumentMask

Die zurückzugebenden Felder. Wenn nicht festgelegt, werden alle Felder zurückgegeben.

Wenn das Dokument ein Feld enthält, das in dieser Maske nicht vorhanden ist, wird dieses Feld nicht in der Antwort zurückgegeben.

current_document

Precondition

Eine optionale Vorbedingung für das Dokument. Die Anfrage schlägt fehl, wenn dies festgelegt und vom Zieldokument nicht erfüllt wird.

Wert

Eine Nachricht, die einen der unterstützten Werttypen enthalten kann.

Felder
Union-Feld value_type. Es muss ein Wert festgelegt werden. Für value_type ist nur einer der folgenden Werte zulässig:
null_value

NullValue

Ein Nullwert.

boolean_value

bool

Ein boolescher Wert.

integer_value

int64

Ein ganzzahliger Wert.

double_value

double

Ein Double-Wert.

timestamp_value

Timestamp

Ein Zeitstempelwert.

Auf Mikrosekunden genau. Beim Speichern wird jede zusätzliche Genauigkeit abgerundet.

string_value

string

Ein Stringwert.

Der als UTF-8-String dargestellte String darf 1 MiB und 89 Byte nicht überschreiten. Nur die ersten 1.500 Byte der UTF-8-Darstellung werden von Abfragen berücksichtigt.

bytes_value

bytes

Ein Byte-Wert.

Darf 1 MiB bis 89 Byte nicht überschreiten. Nur die ersten 1.500 Byte werden von Abfragen berücksichtigt.

reference_value

string

Ein Verweis auf ein Dokument. Beispiel: projects/{project_id}/databases/{database_id}/documents/{document_path}.

geo_point_value

LatLng

Ein Geopunktwert, der einen Punkt auf der Erdoberfläche darstellt.

array_value

ArrayValue

Ein Arraywert.

Darf nicht direkt einen anderen Arraywert enthalten, kann jedoch eine Karte enthalten, die ein anderes Array enthält.

map_value

MapValue

Ein Kartenwert.

Schreiben

Schreibvorgang für ein Dokument.

Felder
update_mask

DocumentMask

Die Felder, die in diesem Schreibvorgang aktualisiert werden sollen.

Dieses Feld kann nur festgelegt werden, wenn der Vorgang update ist. Wenn die Maske nicht für update festgelegt ist und das Dokument vorhanden ist, werden alle vorhandenen Daten überschrieben. Wenn die Maske festgelegt ist und das Dokument auf dem Server Felder enthält, die nicht von der Maske abgedeckt sind, bleiben diese unverändert. Felder, auf die in der Maske verwiesen wird, die im Eingabedokument aber nicht vorhanden sind, werden auf dem Server aus dem Dokument gelöscht. Die Feldpfade in dieser Maske dürfen keinen reservierten Feldnamen enthalten.

update_transforms[]

FieldTransform

Die Transformationen, die nach der Aktualisierung ausgeführt werden sollen.

Dieses Feld kann nur festgelegt werden, wenn der Vorgang update ist. Falls vorhanden, entspricht dieser Schreibvorgang der Ausführung von update und transform im selben Dokument in kleinstmöglicher Reihenfolge.

current_document

Precondition

Eine optionale Vorbedingung für das Dokument.

Der Schreibvorgang schlägt fehl, wenn dies festgelegt und vom Zieldokument nicht erfüllt wird.

Union-Feld operation. Der auszuführende Vorgang. Für operation ist nur einer der folgenden Werte zulässig:
update

Document

Ein zu schreibendes Dokument.

delete

string

Der Name des zu löschenden Dokuments. Im Format: projects/{project_id}/databases/{database_id}/documents/{document_path}.

transform

DocumentTransform

Wendet eine Transformation auf ein Dokument an.

WriteRequest

Die Anfrage für Firestore.Write.

Mit der ersten Anfrage wird ein Stream erstellt oder ein vorhandener Stream aus einem Token fortgesetzt.

Beim Erstellen eines neuen Streams antwortet der Server mit einer Antwort, die nur eine ID und ein Token enthält, die in der nächsten Anfrage verwendet werden.

Beim Fortsetzen eines Streams streamt der Server zuerst alle Antworten, die nach dem angegebenen Token liegen. Dann wird eine Antwort, die nur ein aktuelles Token enthält, für die nächste Anfrage gesendet.

Felder
database

string

Erforderlich. Der Datenbankname. Im Format: projects/{project_id}/databases/{database_id}. Dies ist nur in der ersten Nachricht erforderlich.

stream_id

string

Die ID des Schreibstreams, der fortgesetzt werden soll. Dies kann nur in der ersten Nachricht festgelegt werden. Wenn das Feld leer ist, wird ein neuer Schreibstream erstellt.

writes[]

Write

Die anzuwendenden Schreibvorgänge.

Immer atomar und in der richtigen Reihenfolge ausgeführt. Dieses Feld muss in der ersten Anfrage leer sein. Dieses Feld kann in der letzten Anfrage leer sein. Dieses Feld darf nicht bei allen anderen Anfragen leer sein.

stream_token

bytes

Ein Streamtoken, das zuvor vom Server gesendet wurde.

Der Client sollte dieses Feld auf das Token der letzten erhaltenen WriteResponse festlegen. Damit wird bestätigt, dass der Client Antworten bis zu diesem Token erhalten hat. Nach dem Senden dieses Tokens können frühere Tokens nicht mehr verwendet werden.

Der Server schließt den Stream möglicherweise, wenn zu viele nicht bestätigte Antworten vorhanden sind.

Lass dieses Feld beim Erstellen eines neuen Streams leer. Wenn Sie einen Stream an einer bestimmten Stelle fortsetzen möchten, legen Sie dieses Feld und das Feld stream_id fest.

Lass dieses Feld beim Erstellen eines neuen Streams leer.

labels

map<string, string>

Labels, die mit dieser Schreibanfrage verknüpft sind.

WriteResponse

Die Antwort für Firestore.Write.

Felder
stream_id

string

Die ID des Streams. Wird nur bei der ersten Nachricht festgelegt, wenn ein neuer Stream erstellt wurde.

stream_token

bytes

Ein Token, das die Position dieser Antwort im Stream darstellt. Damit kann ein Client den Stream an dieser Stelle fortsetzen.

Dieses Feld ist immer festgelegt.

write_results[]

WriteResult

Das Ergebnis der Anwendung der Schreibvorgänge.

Dieses i-te Schreibergebnis entspricht dem i-ten Schreibvorgang in der Anfrage.

commit_time

Timestamp

Der Zeitpunkt, zu dem der Commit ausgeführt wurde. Jeder Lesevorgang mit einem gleichen oder größeren Wert für read_time erkennt garantiert die Auswirkungen des Schreibvorgangs.

WriteResult

Das Ergebnis des Anwendens eines Schreibvorgangs.

Felder
update_time

Timestamp

Der Zeitpunkt der letzten Aktualisierung des Dokuments nach dem Anwenden des Schreibvorgangs. Nicht nach delete festgelegt.

Wenn das Dokument durch den Schreibvorgang nicht geändert wurde, ist dies die vorherige update_time.

transform_results[]

Value

Die Ergebnisse der Anwendung der einzelnen DocumentTransform.FieldTransform in derselben Reihenfolge.