Package google.firestore.v1

Indeks

Firestore

Usługa Cloud Firestore.

Cloud Firestore to szybka, w pełni zarządzana, bezserwerowa baza danych dokumentów NoSQL w chmurze, która upraszcza przechowywanie i synchronizowanie danych, a także wysyłanie do nich zapytań w przypadku aplikacji mobilnych, internetowych i IoT w skali globalnej. Biblioteki klienta zapewniają synchronizację na żywo i obsługę offline, a jego funkcje zabezpieczeń i integracje z Firebase i Google Cloud Platform przyspieszają tworzenie naprawdę bezserwerowych aplikacji.

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

Pobiera wiele dokumentów.

Nie możemy zagwarantować, że dokumenty zwrócone przez tę metodę zostaną zwrócone w takiej kolejności, w jakiej były żądane.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

BatchWrite

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

Stosuje grupę operacji zapisu.

Metoda BatchWrite nie stosuje atomów do operacji zapisu i może je stosować w niewłaściwej kolejności. Metoda nie pozwala na więcej niż 1 zapis w dokumencie. Każdy zapis kończy się sukcesem lub niepowodzeniem. Informacje o stanie powodzenia każdego zapisu znajdziesz w sekcji BatchWriteResponse.

Jeśli potrzebujesz zestawu zapisów stosowanych atomowo, użyj Commit.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

BeginTransaction

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

Rozpoczyna nową transakcję.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

Zatwierdź

rpc Commit(CommitRequest) returns (CommitResponse)

Zatwierdzanie transakcji i opcjonalne aktualizowanie dokumentów.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

CreateDocument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

Tworzy nowy dokument.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

DeleteDocument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

Usuwa dokument.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

Pobiera pojedynczy dokument.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

ListCollectionIds

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

Wyświetla listę wszystkich identyfikatorów kolekcji pod dokumentem.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

ListDocuments

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

Wyświetla listę dokumentów.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

Posłuchaj

rpc Listen(ListenRequest) returns (ListenResponse)

Wykrywa zmiany. Ta metoda jest dostępna tylko przez gRPC lub WebChannel (nie REST).

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

PartitionQuery

rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse)

Partycjonuje zapytanie przez zwrócenie kursorów partycji, których można używać do równoległego wykonywania zapytania. Zwrócone kursory partycji to punkty podziału, których RunQuery może używać jako punktów początkowych i końcowych wyników zapytania.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

Przywróć

rpc Rollback(RollbackRequest) returns (Empty)

Wycofuje transakcję.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

RunAggregationQuery

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

Uruchamia zapytanie agregacji.

Zamiast generować wyniki Document, takie jak Firestore.RunQuery, ten interfejs API umożliwia uruchomienie agregacji w celu utworzenia serii AggregationResult po stronie serwera.

Przykład wysokiego poziomu:

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

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

RunQuery

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

Uruchamia zapytanie.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

UpdateDocument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

Aktualizuje lub wstawia dokument.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

Zapis

rpc Write(WriteRequest) returns (WriteResponse)

Strumieniowo przesyła w kolejności partie aktualizacji i usuwania dokumentów. Ta metoda jest dostępna tylko przez gRPC lub WebChannel (nie REST).

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w artykule Omówienie uwierzytelniania.

AggregationResult

Wynik pojedynczego zasobnika z zapytania agregacji Firestore.

Klucze funkcji aggregate_fields są takie same dla wszystkich wyników zapytania agregacji w przeciwieństwie do zapytań dotyczących dokumentów, które dla każdego wyniku mogą mieć inne pola.

Pola
aggregate_fields

map<string, Value>

Wynik funkcji agregacji, np. COUNT(*) AS total_docs.

Klucz to alias przypisany do funkcji agregacji na danych wejściowych, a rozmiar tej mapy jest równy liczbie funkcji agregacji w zapytaniu.

ArrayValue

Wartość tablicy.

Pola
values[]

Value

Wartości w tablicy.

BatchGetDocumentsRequest

Prośba dotycząca: Firestore.BatchGetDocuments.

Pola
database

string

To pole jest wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

documents[]

string

Nazwy dokumentów do pobrania. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}. Żądanie nie powiedzie się, jeśli którykolwiek z dokumentów nie jest zasobem podrzędnym danego elementu database. Zduplikowane nazwy zostaną wykluczone.

mask

DocumentMask

Pola do zwrócenia. Jeśli wartość nie jest ustawiona, zwraca wszystkie pola.

Jeśli dokument zawiera pole, którego nie ma w tej masce, nie zostanie ono zwrócone w odpowiedzi.

Pole sumy consistency_selector. Tryb spójności tej transakcji. Jeśli nie jest skonfigurowana, domyślnie stosowana jest silna spójność. consistency_selector może być tylko jedną z tych wartości:
transaction

bytes

Odczytywanie dokumentów w transakcji.

new_transaction

TransactionOptions

Rozpoczyna nową transakcję i odczytuje dokumenty. Domyślnie transakcja jest tylko do odczytu. Nowy identyfikator transakcji zostanie zwrócony jako pierwsza odpowiedź w strumieniu.

read_time

Timestamp

Odczytuje dokumenty w takiej postaci, w jakiej były w danym momencie.

Musi to być sygnatura czasowa precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

BatchGetDocumentsResponse

Przesłana odpowiedź przesłana strumieniowo dla użytkownika Firestore.BatchGetDocuments.

Pola
transaction

bytes

Transakcja rozpoczęta w ramach tego żądania. Zostanie ustawiona tylko w pierwszej odpowiedzi i tylko wtedy, gdy w żądaniu ustawiono parametr BatchGetDocumentsRequest.new_transaction.

read_time

Timestamp

Godzina odczytu dokumentu. Wartość ta może rosnąć monologicznie. W tym przypadku na pewno poprzednie dokumenty w strumieniu wyników nie zmienią się między wartością read_time a tym wartością.

Pole sumy result. Jeden wynik. To pole może być puste, jeśli serwer tylko zwraca transakcję. result może być tylko jedną z tych wartości:
found

Document

Dokument, którego dotyczyło żądanie.

missing

string

Podana nazwa dokumentu nie istnieje. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}.

BatchWriteRequest

Prośba dotycząca: Firestore.BatchWrite.

Pola
database

string

To pole jest wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

writes[]

Write

Zapisy do zastosowania.

Metoda nie stosuje się do zapisu atomowego i nie gwarantuje kolejności. Każdy zapis kończy się sukcesem lub niepowodzeniem. W danym żądaniu nie można zapisać w tym samym dokumencie więcej niż jeden raz.

labels

map<string, string>

Etykiety powiązane z tym zapisem wsadowym.

BatchWriteResponse

Odpowiedź od użytkownika Firestore.BatchWrite.

Pola
write_results[]

WriteResult

Wynik zastosowania zapisów.

Ten i-ty wynik zapisu odpowiada i-temu zapisowi w żądaniu.

status[]

Status

Stan stosowania zapisów.

Ten stan i-tego zapisu odpowiada i-temu zapisowi w żądaniu.

BeginTransactionRequest

Prośba dotycząca: Firestore.BeginTransaction.

Pola
database

string

To pole jest wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

options

TransactionOptions

Opcje transakcji. Domyślnie jest to transakcja odczytu-zapisu.

BeginTransactionResponse

Odpowiedź dotycząca: Firestore.BeginTransaction.

Pola
transaction

bytes

Transakcja, która została rozpoczęta.

BitSequence

Sekwencja bitów zakodowana w tablicy bajtów.

Każdy bajt w tablicy bajtów bitmap przechowuje 8 bitów sekwencji. Jedynym wyjątkiem jest ostatni bajt, który może przechowywać do 8 lub mniej bitów. Pole padding określa liczbę bitów ostatniego bajtu, które mają być ignorowane jako „dopełnienie”. Wartości tych bitów „dopełnienie” są nieokreślone i należy je zignorować.

Aby pobrać pierwszy bit (bit 0), wykonaj obliczenia: (bitmap[0] & 0x01) != 0. Aby pobrać drugi bit (bit 1), wykonaj obliczenia: (bitmap[0] & 0x02) != 0. Aby pobrać trzeci bit, czyli bit 2, wykonaj obliczenia: (bitmap[0] & 0x04) != 0. Aby pobrać czwarty bit (bit 3), wykonaj obliczenia: (bitmap[0] & 0x08) != 0. Aby pobrać bit n, wykonaj obliczenia: (bitmap[n / 8] & (0x01 << (n % 8))) != 0.

„Rozmiar” elementu BitSequence (liczba zawartych w nim bitów) jest obliczany według tego wzoru: (bitmap.length * 8) - padding.

Pola
bitmap

bytes

Bajty, które kodują sekwencję bitów. Może mieć długość zero.

padding

int32

Liczba bitów ostatniego bajtu w argumencie bitmap, które mają być ignorowane jako „dopełnienie”. Jeśli długość elementu bitmap wynosi 0, ta wartość musi wynosić 0. W przeciwnym razie ta wartość musi mieścić się w zakresie od 0 do 7 włącznie.

BloomFilter

Filtr kwiatów (https://en.wikipedia.org/wiki/Bloom_filter).

Filtr Blooma szyfruje wpisy za pomocą MD5 i traktuje wynikowy 128-bitowy hasz jako 2 różne 64-bitowe wartości skrótu, interpretowane jako liczby całkowite bez znaku przy użyciu kodowania uzupełniającego 2.

Te 2 wartości skrótu, o nazwach h1 i h2, są następnie używane do obliczania wartości skrótu hash_count za pomocą formuły, zaczynając od i=0:

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

Otrzymane wartości są następnie modyfikowane przez liczbę bitów w filtrze kwiatu w celu pobrania bitów filtra rozkwitu do przetestowania dla danego wpisu.

Pola
bits

BitSequence

Dane filtra kwiatów.

hash_count

int32

Liczba haszów używanych przez algorytm.

CommitRequest

Prośba dotycząca: Firestore.Commit.

Pola
database

string

To pole jest wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

writes[]

Write

Zapisy do zastosowania.

Zawsze wykonywane atomowo i w kolejności.

transaction

bytes

Jeśli zasada jest skonfigurowana, stosuje i zatwierdza wszystkie zapisy w tej transakcji.

CommitResponse

Odpowiedź dotycząca: Firestore.Commit.

Pola
write_results[]

WriteResult

Wynik zastosowania zapisów.

Ten i-ty wynik zapisu odpowiada i-temu zapisowi w żądaniu.

commit_time

Timestamp

Czas wystąpienia zatwierdzenia. Każdy odczyt o wartości read_time lub większej z gwarancji pokazuje efekty zatwierdzenia.

CreateDocumentRequest

Prośba dotycząca: Firestore.CreateDocument.

Pola
parent

string

To pole jest wymagane. Zasób nadrzędny. Na przykład: projects/{project_id}/databases/{database_id}/documents lub projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}

collection_id

string

To pole jest wymagane. Identyfikator kolekcji względem listy parent. Przykład: chatrooms.

document_id

string

Przypisany przez klienta identyfikator dokumentu, który ma być używany w tym dokumencie.

Opcjonalnie. Jeśli identyfikator nie zostanie podany, usługa go przypisze.

document

Document

To pole jest wymagane. Dokument do utworzenia. Nie można ustawić zasady name.

mask

DocumentMask

Pola do zwrócenia. Jeśli wartość nie jest ustawiona, zwraca wszystkie pola.

Jeśli dokument zawiera pole, którego nie ma w masce, nie zostanie ono zwrócone w odpowiedzi.

Kursor

Pozycja w zestawie wyników zapytania.

Pola
values[]

Value

Wartości reprezentujące pozycję w kolejności, w jakiej występują w kolejności klauzuli w zapytaniu.

Może zawierać mniej wartości niż określona w klauzuli kolejności według klauzuli.

before

bool

Jeśli pozycja znajduje się tuż przed podanymi wartościami lub tuż po nich, w odniesieniu do kolejności sortowania zdefiniowanej przez zapytanie.

DeleteDocumentRequest

Prośba dotycząca: Firestore.DeleteDocument.

Pola
name

string

To pole jest wymagane. Nazwa zasobu dokumentu do usunięcia. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}.

current_document

Precondition

Opcjonalny warunek wstępny w dokumencie. Żądanie nie powiedzie się, jeśli ten parametr jest ustawiony, a dokument docelowy nie spełnia tego warunku.

Dokumenty

Dokument Firestore.

Nie może przekraczać 1 MiB do 4 bajtów.

Pola
name

string

Nazwa zasobu dokumentu, na przykład projects/{project_id}/databases/{database_id}/documents/{document_path}.

fields

map<string, Value>

create_time

Timestamp

Tylko dane wyjściowe. Godzina utworzenia dokumentu.

Ta wartość rośnie monotonicznie, gdy dokument zostanie usunięty, a następnie ponownie utworzony. Można ją też porównywać z wartościami z innych dokumentów i z read_time zapytania.

update_time

Timestamp

Tylko dane wyjściowe. Godzina ostatniej modyfikacji dokumentu.

Początkowo ustawiana jest wartość create_time, a następnie rośnie monotonicznie z każdą zmianą w dokumencie. Można ją też porównywać z wartościami z innych dokumentów i z read_time zapytania.

DocumentChange

Zmieniono element: Document.

Może to być wynikiem wielu czynności writes, w tym usunięć, które ostatecznie skutkowały nową wartością parametru Document.

Jeśli ta sama zmiana logiczna ma wpływ na wiele komunikatów DocumentChange, może ona zostać zwrócona.

Pola
document

Document

Nowy stan: Document.

Jeśli ustawiona jest wartość mask, zawiera tylko pola, które zostały zaktualizowane lub dodane.

target_ids[]

int32

Zestaw identyfikatorów elementów docelowych, które pasują do tego dokumentu.

removed_target_ids[]

int32

Zestaw identyfikatorów elementów docelowych, które nie pasują już do tego dokumentu.

DocumentDelete

Element Document został usunięty.

Może to być spowodowane wieloma procesami writes, łącznie z aktualizacjami, z których ostatnia usunięto Document.

Jeśli problem dotyczy wielu wiadomości docelowych, to samo usunięcie logiczne może spowodować zwrócenie wielu wiadomości DocumentDelete.

Pola
document

string

Nazwa usuniętego zasobu (Document).

removed_target_ids[]

int32

Zestaw identyfikatorów elementów docelowych, które wcześniej pasowały do tego elementu.

read_time

Timestamp

Sygnatura czasowa odczytu, w którym zaobserwowano usunięcie.

Większe lub równe commit_time usunięcia.

DocumentMask

Zbiór ścieżek pól w dokumencie. Służy do ograniczania operacji pobierania lub aktualizacji dokumentu do podzbioru jego pól. Różni się od standardowych masek pól, ponieważ zawsze jest ograniczony do Document i uwzględnia dynamiczny charakter obiektu Value.

Pola
field_paths[]

string

Lista ścieżek pól w masce. Informacje o składni ścieżek pól znajdziesz w sekcji Document.fields.

DocumentRemove

Element Document został usunięty z widoku celów.

Wysyłane, jeśli dokument nie jest już odpowiedni dla obiektu docelowego i nie jest już widoczny. Można ją wysłać zamiast metody DocumentDelete lub DocumentChange, jeśli serwer nie może wysłać nowej wartości dokumentu.

Jeśli problem ma wpływ na wiele wiadomości docelowych, podczas tego samego zapisu lub usuwania logicznego może zostać zwróconych wiele wiadomości DocumentRemove.

Pola
document

string

Nazwa zasobu zasobu Document, który przestał być widoczny.

removed_target_ids[]

int32

Zestaw identyfikatorów elementów docelowych, które wcześniej pasowały do tego dokumentu.

read_time

Timestamp

Sygnatura czasowa odczytu, w którym zaobserwowano usunięcie.

Co najmniej tyle samo co commit_time wartości zmiany/usunięcia/usunięcia.

DocumentTransform

Przekształcenie dokumentu.

Pola
document

string

Nazwa dokumentu do przekształcenia.

field_transforms[]

FieldTransform

Lista przekształceń, które mają zostać zastosowane do pól dokumentu (w kolejności). To pole nie może być puste.

FieldTransform

Przekształcenie pola dokumentu.

Pola
field_path

string

Ścieżka pola. Informacje o składni ścieżek pól znajdziesz w sekcji Document.fields.

Pole sumy transform_type. Przekształcenie do zastosowania w polu. transform_type może być tylko jedną z tych wartości:
set_to_server_value

ServerValue

Ustawia w polu podaną wartość serwera.

increment

Value

Dodaje podaną wartość do bieżącej wartości pola.

Musi to być liczba całkowita lub wartość podwójnej precyzji. Jeśli pole nie jest liczbą całkowitą ani liczbą podwójną albo jeśli pole jeszcze nie istnieje, przekształcenie ustawi wartość na określoną wartość. Jeśli jedna z podanych wartości lub bieżąca wartość pola to podwojenie, obie wartości zostaną zinterpretowane jako liczby podwójne. Podwójna arytmetyka i reprezentacja wartości podwójnych są zgodne z semantyką IEEE 754. W przypadku nadmiaru liczby dodatniej/ujemnej wartość w polu jest zwracana na największą dodatnią/ujemną liczbę całkowitą.

maximum

Value

Ustawia pole na maksymalną wartość spośród podanych nim i bieżących wartości.

Musi to być liczba całkowita lub wartość podwójnej precyzji. Jeśli pole nie jest liczbą całkowitą ani liczbą podwójną albo jeśli pole jeszcze nie istnieje, przekształcenie ustawi wartość na określoną wartość. Jeśli zostanie zastosowana maksymalna operacja, gdy pole i wartość wejściowa są mieszane (jedną liczbą całkowitą, a drugą), pole przyjmuje typ większego argumentu. Jeśli operandy są równoważne (np. 3 i 3.0), pole się nie zmienia. 0, 0,0 i -0,0 mają wartość 0. Maksymalna liczba wartości przedpłaconych i zerowa wartość wejściowa to zawsze wartość przechowywana. Maksymalna wartość liczbowa x i NaN to NaN.

minimum

Value

Ustawia w polu minimalną wartość spośród jego bieżącej i podanej wartości.

Musi to być liczba całkowita lub wartość podwójnej precyzji. Jeśli pole nie jest liczbą całkowitą ani liczbą podwójną albo jeśli pole jeszcze nie istnieje, przekształcenie ustawi wartość na wartość wejściową. Jeśli zostanie zastosowana minimalna operacja, gdy pole i wartość wejściowa mają mieszany typ (tzn. jedna jest liczbą całkowitą, a druga podwójna), pole przyjmuje typ mniejszego argumentu. Jeśli operandy są równoważne (np. 3 i 3.0), pole się nie zmienia. 0, 0,0 i -0,0 mają wartość 0. Wartości minimalna: 0 wartości przedpłaconej i 0 wartości wejściowych to zawsze wartość przechowywana. Minimalną wartością liczbową x i NaN jest NaN.

append_missing_elements

ArrayValue

Jeśli nie ma ich w bieżącej wartości pola, dołącz podane elementy w kolejności. Jeśli pole nie jest tablicą lub jeśli pole jeszcze nie istnieje, jest najpierw ustawiane na pustą tablicę.

Równoważne liczby różnych typów (np. 3L i 3,0) są uważane za równe przy sprawdzaniu, czy brakuje jakiejś wartości. NaN jest równa NaN, a wartość null jest równa zero. Jeśli dane wejściowe zawierają wiele równoważnych wartości, tylko pierwsza z nich zostanie uwzględniona.

Odpowiednia wartość transform_result będzie wartością null.

remove_all_from_array

ArrayValue

Usuń wszystkie podane elementy z tablicy w tym polu. Jeśli pole nie jest tablicą lub pole jeszcze nie istnieje, jest ustawione na pustą tablicę.

Równoważne liczby różnych typów (np. 3L i 3.0) są uważane za równe przy podejmowaniu decyzji o usunięciu elementu. NaN jest równa NaN, a wartość null jest równa zero. Spowoduje to usunięcie wszystkich równoważnych wartości, jeśli istnieją duplikaty.

Odpowiednia wartość transform_result będzie wartością null.

ServerValue

Wartość obliczana przez serwer.

Wartości w polu enum
SERVER_VALUE_UNSPECIFIED Nie określono. Tej wartości nie można używać.
REQUEST_TIME Czas, w którym serwer przetworzył żądanie, z dokładnością do milisekundy. Jeśli transakcji użyjesz w kilku polach (tym samym lub różnych dokumentach), wszystkie te pola otrzymają tę samą sygnaturę czasową serwera.

ExecutionStats

Statystyki wykonywania zapytania.

Pola
results_returned

int64

Łączna liczba zwróconych wyników, w tym dokumentów, prognoz, wyników agregacji i kluczy.

execution_duration

Duration

Łączny czas wykonywania zapytania w backendzie.

read_operations

int64

Łączna liczba płatnych operacji odczytu.

debug_stats

Struct

debugowanie statystyk wykonywania zapytania. Pamiętaj, że statystyki debugowania mogą się zmienić w miarę rozwoju Firestore. It could include: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" } }

ExistenceFilter

Podsumowanie wszystkich dokumentów pasujących do danego elementu docelowego.

Pola
target_id

int32

Identyfikator miejsca docelowego, do którego ma zastosowanie ten filtr.

count

int32

Łączna liczba dokumentów zgodnych z target_id.

Jeśli liczba pasujących dokumentów w kliencie jest inna niż liczba pasujących dokumentów, klient musi ręcznie określić, które dokumenty nie są już zgodne z elementem docelowym.

Aby to sprawdzić, klient może użyć filtra kwiatów unchanged_names, testując WSZYSTKIE nazwy dokumentów pod kątem filtra. Jeśli nazwa dokumentu NIE znajduje się w filtrze, dokument nie jest już zgodny z celem.

unchanged_names

BloomFilter

Filtr kwiatów, który mimo swojej nazwy zawiera kodowanie UTF-8 nazw zasobów WSZYSTKICH dokumentów zgodnych z target_id, w formacie projects/{project_id}/databases/{database_id}/documents/{document_path}.

Serwer może pominąć ten filtr kwiatów według własnego uznania, na przykład jeśli uzna, że klient nie będzie z niego korzystać lub jeśli jego obliczenia są zbyt kosztowne pod względem obliczeń. Klienty muszą płynnie obsługiwać to pole, powracając do logiki stosowanej przed jego utworzeniem. Oznacza to, że ponownie dodaj środowisko docelowe bez tokena wznowienia, aby sprawdzić, które dokumenty w pamięci podręcznej klienta nie są zsynchronizowane.

ExplainMetrics

Wyjaśnij dane dla zapytania.

Pola
plan_summary

PlanSummary

Informacje o etapie planowania dotyczące zapytania.

execution_stats

ExecutionStats

Zbiorcze statystyki wykonywania zapytania. Widoczny tylko wtedy, gdy zasada ExplainOptions.analyze ma wartość Prawda.

ExplainOptions

Wyjaśnij opcje zapytania.

Pola
analyze

bool

Opcjonalnie. Określa, czy zapytanie ma zostać wykonane.

Jeśli ustawisz wartość false (wartość domyślna), zapytanie będzie planowane i będzie zwracać tylko dane z etapów planowania.

Jeśli ma wartość true (prawda), zapytanie będzie planowane i wykonane, a zwrócone zostaną pełne wyniki zapytania wraz z danymi dotyczącymi etapu planowania i wykonania.

GetDocumentRequest

Prośba dotycząca: Firestore.GetDocument.

Pola
name

string

To pole jest wymagane. Nazwa zasobu dokumentu do pobrania. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}.

mask

DocumentMask

Pola do zwrócenia. Jeśli wartość nie jest ustawiona, zwraca wszystkie pola.

Jeśli dokument zawiera pole, którego nie ma w masce, nie zostanie ono zwrócone w odpowiedzi.

Pole sumy consistency_selector. Tryb spójności tej transakcji. Jeśli nie jest skonfigurowana, domyślnie stosowana jest silna spójność. consistency_selector może być tylko jedną z tych wartości:
transaction

bytes

Odczytuje dokument w transakcji.

read_time

Timestamp

Odczytywanie wersji dokumentu w danym momencie.

Musi to być sygnatura czasowa precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

ListCollectionIdsRequest

Prośba dotycząca: Firestore.ListCollectionIds.

Pola
parent

string

To pole jest wymagane. Dokument nadrzędny. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}. Przykład: projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

page_size

int32

Maksymalna liczba wyników do zwrócenia.

page_token

string

Token strony. Musi to być wartość z ListCollectionIdsResponse.

Pole sumy consistency_selector. Tryb spójności dla tego żądania. Jeśli nie jest skonfigurowana, domyślnie stosowana jest silna spójność. consistency_selector może być tylko jedną z tych wartości:
read_time

Timestamp

Odczytuje dokumenty w takiej postaci, w jakiej były w danym momencie.

Musi to być sygnatura czasowa precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

ListCollectionIdsResponse

Odpowiedź od użytkownika Firestore.ListCollectionIds.

Pola
collection_ids[]

string

Identyfikatory kolekcji.

next_page_token

string

Token strony, który może służyć do kontynuowania listy.

ListDocumentsRequest

Prośba dotycząca: Firestore.ListDocuments.

Pola
parent

string

To pole jest wymagane. Nazwa zasobu nadrzędnego. W formacie projects/{project_id}/databases/{database_id}/documents lub projects/{project_id}/databases/{database_id}/documents/{document_path}.

Na przykład: projects/my-project/databases/my-database/documents lub projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

collection_id

string

Opcjonalnie. Identyfikator kolekcji względem listy parent.

np. chatrooms lub messages.

Jest to opcjonalne. Jeśli jej nie podasz, Firestore wyświetli listę dokumentów ze wszystkich kolekcji w ramach podanego atrybutu parent.

page_size

int32

Opcjonalnie. Maksymalna liczba dokumentów zwracanych w jednej odpowiedzi.

Firestore może zwrócić mniej niż ta wartość.

page_token

string

Opcjonalnie. Token strony otrzymany z poprzedniej odpowiedzi ListDocuments.

Podaj je, aby pobrać kolejną stronę. Podczas podziału na strony wszystkie pozostałe parametry (z wyjątkiem page_size) muszą odpowiadać wartościom ustawionym w żądaniu, które wygenerowało token strony.

order_by

string

Opcjonalnie. Opcjonalna kolejność zwracanych dokumentów.

Przykład: priority desc, __name__ desc.

Odzwierciedla to ORDER BY używane w zapytaniach Firestore, ale w postaci ciągu znaków. Jeśli go nie ma, dokumenty są uporządkowane na podstawie __name__ ASC.

mask

DocumentMask

Opcjonalnie. Pola do zwrócenia. Jeśli wartość nie jest ustawiona, zwraca wszystkie pola.

Jeśli dokument zawiera pole, którego nie ma w tej masce, nie zostanie ono zwrócone w odpowiedzi.

show_missing

bool

Czy lista powinna zawierać brakujące dokumenty?

Dokument, który nie istnieje, nie istnieje, ale znajdują się pod nim zagnieżdżone dokumenty podrzędne. Jeśli ma wartość true (prawda), takie brakujące dokumenty będą zwracane z kluczem, ale bez ustawionych pól create_time czy update_time.

Żądania z atrybutem show_missing nie mogą mieć wartości where ani order_by.

Pole sumy consistency_selector. Tryb spójności tej transakcji. Jeśli nie jest skonfigurowana, domyślnie stosowana jest silna spójność. consistency_selector może być tylko jedną z tych wartości:
transaction

bytes

Przeprowadź odczyt w ramach aktywnej transakcji.

read_time

Timestamp

Wykonaj odczyt o podanej godzinie.

Musi to być sygnatura czasowa precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

ListDocumentsResponse

Odpowiedź dotycząca: Firestore.ListDocuments.

Pola
documents[]

Document

Znalezione dokumenty.

next_page_token

string

Token pobierania następnej strony dokumentów.

Jeśli pominiesz to pole, nie będzie kolejnych stron.

ListenRequest

Prośba dotycząca: Firestore.Listen

Pola
database

string

To pole jest wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

labels

map<string, string>

Etykiety powiązane z tą zmianą wartości docelowej.

Pole sumy target_change. Zmienia się obsługiwana wartość docelowa. target_change może być tylko jedną z tych wartości:
add_target

Target

Cel, który ma zostać dodany do tego strumienia.

remove_target

int32

Identyfikator celu, który ma zostać usunięty z tego strumienia.

ListenResponse

Odpowiedź dotycząca: Firestore.Listen.

Pola
Pole sumy response_type. Obsługiwane odpowiedzi. response_type może być tylko jedną z tych wartości:
target_change

TargetChange

Cele uległy zmianie.

document_change

DocumentChange

Zmieniono element: Document.

document_delete

DocumentDelete

Element Document został usunięty.

document_remove

DocumentRemove

Element Document został usunięty z celu (ponieważ nie jest już z nim odpowiedni).

filter

ExistenceFilter

Filtr, który zostanie zastosowany do zbioru dokumentów zwróconych wcześniej w przypadku danego miejsca docelowego.

Zwracany, gdy dokumenty mogły zostać usunięte z danego miejsca docelowego, ale dokładne dokumenty są nieznane.

MapValue

Wartość mapy.

Pola
fields

map<string, Value>

Pola mapy.

Klucze mapy reprezentują nazwy pól. Nazwy pól pasujące do wyrażenia regularnego __.*__ są zastrzeżone. Zarezerwowane nazwy pól są niedozwolone z wyjątkiem określonych udokumentowanych kontekstów. Klucze mapy, oznaczone w formacie UTF-8, nie mogą mieć więcej niż 1500 bajtów i nie mogą być puste.

PartitionQueryRequest

Prośba dotycząca: Firestore.PartitionQuery.

Pola
parent

string

To pole jest wymagane. Nazwa zasobu nadrzędnego. W formacie: projects/{project_id}/databases/{database_id}/documents. Nazwy zasobów dokumentów nie są obsługiwane. Można podać tylko nazwy zasobów baz danych.

partition_count

int64

Żądana maksymalna liczba punktów partycji. Partycje mogą być zwracane na wielu stronach wyników. Liczba musi być liczbą dodatnią. Rzeczywista liczba zwróconych partycji może być mniejsza.

Wartość może na przykład być o 1 mniejsza niż liczba równoległych zapytań do wykonania lub o 1 mniej niż w przypadku uruchomienia zadania potoku danych.

page_token

string

Wartość next_page_token zwrócona z poprzedniego wywołania do PartitionQuery, która może zostać użyta do uzyskania dodatkowego zestawu wyników. Nie ma gwarancji kolejności różnych zestawów wyników. Dlatego używanie wielu zestawów wyników wymaga scalenia ich różnych zbiorów.

Na przykład 2 kolejne wywołania z użyciem parametru page_token mogą zwrócić:

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

Aby uzyskać pełny zbiór wyników uporządkowany w odniesieniu do wyników zapytania dostarczonego do PartitionQuery, należy scalać zbiory wyników: kursor A, kursor B, kursor M, kursor Q, kursor U, kursor W

page_size

int32

Maksymalna liczba partycji do zwrócenia w ramach tego wywołania (określana jako partition_count).

Jeśli na przykład partition_count = 10, a page_size = 8, pierwsze wywołanie PartitionQuery zwróci do 8 partycji i next_page_token, jeśli będzie ich więcej. Drugie wywołanie partycji spowoduje zwrócenie maksymalnie 2 partycji, co daje łącznie 10 podanych w zasadzie partition_count partycji.

Pole sumy query_type. Zapytanie do partycjonowania. query_type może być tylko jedną z tych wartości:
structured_query

StructuredQuery

Uporządkowane zapytanie. Zapytanie musi określać kolekcję ze wszystkimi elementami podrzędnymi i być uporządkowane rosnąco według nazwy. Inne filtry, kolejność według kolejności, limity, przesunięcia ani kursory początku/końca nie są obsługiwane.

Pole sumy consistency_selector. Tryb spójności dla tego żądania. Jeśli nie jest skonfigurowana, domyślnie stosowana jest silna spójność. consistency_selector może być tylko jedną z tych wartości:
read_time

Timestamp

Odczytuje dokumenty w takiej postaci, w jakiej były w danym momencie.

Musi to być sygnatura czasowa precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

PartitionQueryResponse

Odpowiedź dotycząca: Firestore.PartitionQuery.

Pola
partitions[]

Cursor

Wyniki partycjonowania. Każda partycja jest punktem podziału, którego RunQuery może używać jako punktu początkowego lub końcowego wyników zapytania. Żądania RunQuery muszą być wysyłane z użyciem tego samego zapytania, które zostało wysłane w odpowiedzi na to żądanie PartitionQuery. Kursory partycji będą uporządkowane zgodnie z tą samą kolejnością co wyniki zapytania dostarczonego do PartitionQuery.

Jeśli na przykład żądanie PartitionQuery zwróci kursory partycji A i B, uruchomienie tych 3 zapytań spowoduje zwrócenie całego zestawu wyników pierwotnego zapytania:

  • zapytanie, koniec_na A
  • zapytanie, początek_od A, koniec_na B
  • zapytanie, zaczynając_od B

Pusty wynik może oznaczać, że zapytanie ma zbyt mało wyników, aby go partycjonować, lub że zapytanie nie jest jeszcze obsługiwane w ramach partycjonowania.

next_page_token

string

Token strony, który może być używany do żądania dodatkowego zestawu wyników, do wartości określonej w polu partition_count w żądaniu PartitionQuery. Jeśli pole jest puste, nie ma więcej wyników.

PlanSummary

Informacje o etapie planowania dotyczące zapytania.

Pola
indexes_used[]

Struct

Indeksy wybrane dla zapytania. For example: [ {"query_scope": "Collection", "properties": "(foo ASC, name ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, name ASC)"} ]

Warunek wstępny

Warunek wstępny w dokumencie używany w operacjach warunkowych.

Pola
Pole sumy condition_type. Typ warunku wstępnego. condition_type może być tylko jedną z tych wartości:
exists

bool

Jeśli zasada ma wartość true, dokument docelowy musi istnieć. Jeśli zasada ma wartość false, dokument docelowy nie może istnieć.

update_time

Timestamp

Jeśli jest ustawiony, dokument docelowy musi istnieć i w tym czasie być ostatnio zaktualizowany. Sygnatura czasowa musi być wyrównana w mikrosekundach.

RollbackRequest

Prośba dotycząca: Firestore.Rollback.

Pola
database

string

To pole jest wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

transaction

bytes

To pole jest wymagane. Transakcja do wycofania.

RunAggregationQueryRequest

Prośba dotycząca: Firestore.RunAggregationQuery.

Pola
parent

string

To pole jest wymagane. Nazwa zasobu nadrzędnego. W formacie projects/{project_id}/databases/{database_id}/documents lub projects/{project_id}/databases/{database_id}/documents/{document_path}. Na przykład: projects/my-project/databases/my-database/documents lub projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

Opcjonalnie. Wyjaśnij opcje zapytania. Jeśli jest skonfigurowana, zwracane są dodatkowe statystyki zapytań. W przeciwnym razie zwracane będą tylko wyniki zapytania.

Pole sumy query_type. Zapytanie do wykonania. query_type może być tylko jedną z tych wartości:
structured_aggregation_query

StructuredAggregationQuery

Zapytanie obejmujące agregację.

Pole sumy consistency_selector. Tryb spójności zapytania domyślnie ustawia silną spójność. consistency_selector może być tylko jedną z tych wartości:
transaction

bytes

Uruchom agregację w ramach już aktywnej transakcji.

Wartością w tym polu jest nieprzejrzysty identyfikator transakcji, w ramach którego zostanie wykonane zapytanie.

new_transaction

TransactionOptions

Rozpoczyna nową transakcję w ramach zapytania. Domyślnie jest on ustawiony jako tylko do odczytu.

Nowy identyfikator transakcji zostanie zwrócony jako pierwsza odpowiedź w strumieniu.

read_time

Timestamp

Wykonuje zapytanie o podanej sygnaturze czasowej.

Musi to być sygnatura czasowa precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

RunAggregationQueryResponse

Odpowiedź dotycząca: Firestore.RunAggregationQuery.

Pola
result

AggregationResult

Jeden wynik agregacji.

Brak w przypadku raportowania częściowego postępu.

transaction

bytes

Transakcja rozpoczęta w ramach tego żądania.

Występuje tylko w pierwszej odpowiedzi, gdy żądanie zażądało rozpoczęcia nowej transakcji.

read_time

Timestamp

Czas obliczenia wyniku zbiorczego. Ta wartość jest zawsze rosnąca monotonicznie. W tym przypadku poprzednia wartość AggregationResult w strumieniu wyników na pewno nie zmieniła się między wartością read_time a tym parametrem.

Jeśli zapytanie nie zwróci żadnych wyników, zostanie wysłana odpowiedź z parametrem read_time i żadnym atrybutem result, która określa czas wykonania zapytania.

explain_metrics

ExplainMetrics

Zapytanie dotyczące wskaźników. Jest ona obecna tylko wtedy, gdy podano RunAggregationQueryRequest.explain_options i jest wysyłana tylko raz z ostatnią odpowiedzią w strumieniu.

RunQueryRequest

Prośba dotycząca: Firestore.RunQuery.

Pola
parent

string

To pole jest wymagane. Nazwa zasobu nadrzędnego. W formacie projects/{project_id}/databases/{database_id}/documents lub projects/{project_id}/databases/{database_id}/documents/{document_path}. Na przykład: projects/my-project/databases/my-database/documents lub projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

explain_options

ExplainOptions

Opcjonalnie. Wyjaśnij opcje zapytania. Jeśli jest skonfigurowana, zwracane są dodatkowe statystyki zapytań. W przeciwnym razie zwracane będą tylko wyniki zapytania.

Pole sumy query_type. Zapytanie do wykonania. query_type może być tylko jedną z tych wartości:
structured_query

StructuredQuery

Uporządkowane zapytanie.

Pole sumy consistency_selector. Tryb spójności tej transakcji. Jeśli nie jest skonfigurowana, domyślnie stosowana jest silna spójność. consistency_selector może być tylko jedną z tych wartości:
transaction

bytes

Wykonaj zapytanie w ramach już aktywnej transakcji.

Wartością w tym polu jest nieprzejrzysty identyfikator transakcji, w ramach którego zostanie wykonane zapytanie.

new_transaction

TransactionOptions

Rozpoczyna nową transakcję i odczytuje dokumenty. Domyślnie transakcja jest tylko do odczytu. Nowy identyfikator transakcji zostanie zwrócony jako pierwsza odpowiedź w strumieniu.

read_time

Timestamp

Odczytuje dokumenty w takiej postaci, w jakiej były w danym momencie.

Musi to być sygnatura czasowa precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

RunQueryResponse

Odpowiedź dotycząca: Firestore.RunQuery.

Pola
transaction

bytes

Transakcja rozpoczęta w ramach tego żądania. Można go ustawić tylko w pierwszej odpowiedzi i tylko wtedy, gdy w żądaniu określono RunQueryRequest.new_transaction. Jeśli jest skonfigurowana, w odpowiedzi nie zostaną ustawione żadne inne pola.

document

Document

Wynik zapytania, który nie jest ustawiony podczas raportowania częściowego postępu.

read_time

Timestamp

Godzina odczytu dokumentu. Ilość ta może rosnąć monotonicznie. W takim przypadku poprzednie dokumenty w strumieniu wyników na pewno nie będą zmieniać się między tym żądaniem a polem read_time.

Jeśli zapytanie nie zwróci żadnych wyników, zostanie wysłana odpowiedź z parametrem read_time i żadnym atrybutem document, która określa czas wykonania zapytania.

skipped_results

int32

Liczba wyników, które zostały pominięte z powodu opóźnienia między ostatnią odpowiedzią a bieżącą odpowiedzią.

explain_metrics

ExplainMetrics

Zapytanie dotyczące wskaźników. Jest ona obecna tylko wtedy, gdy podano RunQueryRequest.explain_options i jest wysyłana tylko raz z ostatnią odpowiedzią w strumieniu.

Pole sumy continuation_selector. Tryb kontynuacji zapytania. Jeśli ta opcja jest dostępna, oznacza to, że bieżący strumień odpowiedzi na zapytanie zakończył się. To ustawienie można ustawić z parametrem document lub bez niego, ale po ustawieniu tego ustawienia żadne wyniki nie będą wyświetlane. continuation_selector może być tylko jedną z tych wartości:
done

bool

Jeśli usługa Firestore jest dostępna, żądanie zostało już całkowicie wykonane i żadne dokumenty nie będą zwracane.

StructuredAggregationQuery

Zapytanie Firestore dotyczące uruchomienia agregacji w obiekcie StructuredQuery.

Pola
aggregations[]

Aggregation

Opcjonalnie. Seria agregacji do zastosowania do wyników funkcji structured_query.

Wymagane:

  • Od 1 do 5 agregacji na zapytanie.
Pole sumy query_type. Podstawowe zapytanie, na podstawie którego następuje agregacja. query_type może być tylko jedną z tych wartości:
structured_query

StructuredQuery

Zagnieżdżone uporządkowane zapytanie.

Agregacja

Definiuje agregację, która daje jeden wynik.

Pola
alias

string

Opcjonalnie. Opcjonalna nazwa pola, w którym ma być przechowywany wynik agregacji.

Jeśli jej nie podasz, Firestore wybierze nazwę domyślną w formacie field_<incremental_id++>. Na przykład:

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

zmienia się w:

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

Wymagane:

  • Musi być niepowtarzalna wśród wszystkich aliasów agregacji.
  • Przestrzegaj ograniczeń (document field name).
Pole sumy operator. Wymagany typ agregacji do przeprowadzenia. operator może być tylko jedną z tych wartości:
count

Count

Agregator liczników.

sum

Sum

Agregator sum.

avg

Avg

Przeciętny pośrednik.

Śr.

Średnia z wartości żądanego pola.

  • Agregowane zostaną tylko wartości liczbowe. Wszystkie wartości nieliczbowe, w tym NULL, są pomijane.

  • Jeśli wartości zbiorcze zawierają NaN, zwraca NaN. Infinity Math jest zgodny ze standardami IEEE-754.

  • Jeśli zbiór wartości zagregowanych jest pusty, zwraca NULL.

  • Zawsze zwraca wynik jako liczbę zmiennoprzecinkową.

Pola
field

FieldReference

Pole, na podstawie którego mają być agregowane dane.

Liczba

Liczba dokumentów pasujących do zapytania.

Funkcja agregacji COUNT(*) działa w obrębie całego dokumentu, więc nie wymaga odwołania do pola.

Pola
up_to

Int64Value

Opcjonalnie. Opcjonalne ograniczenie maksymalnej liczby dokumentów do zliczenia.

Pozwala to ustawić górną granicę liczby dokumentów do skanowania, ograniczając czas oczekiwania i koszty.

Wartość nieokreślona jest interpretowana jako brak ograniczeń.

Przykład wysokiego poziomu:

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

Wymagane:

  • Jeśli występuje, wartość musi być większa niż 0.

Suma

Suma wartości żądanego pola.

  • Agregowane zostaną tylko wartości liczbowe. Wszystkie wartości nieliczbowe, w tym NULL, są pomijane.

  • Jeśli wartości zbiorcze zawierają NaN, zwraca NaN. Infinity Math jest zgodny ze standardami IEEE-754.

  • Jeśli zestaw wartości zagregowanych jest pusty, zwraca wartość 0.

  • Zwraca 64-bitową liczbę całkowitą, jeśli wszystkie zagregowane liczby są liczbami całkowitymi, a wynik sumy nie przekracza. W przeciwnym razie wynik jest zwracany jako liczba zmiennoprzecinkowa. Pamiętaj, że nawet jeśli wszystkie zagregowane wartości są liczbami całkowitymi, to wynik jest zwracany jako liczba zmiennoprzecinkowa, jeśli nie mieści się on w 64-bitowej ze znakiem. W takim przypadku zwrócona wartość straci precyzję.

  • W takim przypadku agregacja liczb zmiennoprzecinkowych nie jest deterministyczna. Oznacza to, że wielokrotne wykonywanie tego samego zapytania bez wprowadzania zmian w wartościach bazowych może za każdym razem przynieść nieco inne wyniki. W takich przypadkach wartości należy przechowywać jako liczby całkowite zamiast liczb zmiennoprzecinkowych.

Pola
field

FieldReference

Pole, na podstawie którego mają być agregowane dane.

StructuredQuery

Zapytanie Firestore.

Etapy zapytania są wykonywane w następującej kolejności: 1. od 2, gdzie 3. wybierz 4. order_by + start_at + end_at 5. przesunięcie 6. limit

Pola
select

Projection

Opcjonalny podzbiór pól do zwrócenia.

Działa jako DocumentMask nad dokumentami zwróconymi w wyniku zapytania. Jeśli zasada jest nieskonfigurowana, zakładamy, że element wywołujący chce zwrócić wszystkie pola.

from[]

CollectionSelector

Kolekcje, których ma dotyczyć zapytanie.

where

Filter

Filtr, który ma zostać zastosowany.

order_by[]

Order

Kolejność zastosowania wyników zapytania.

Firestore umożliwia użytkownikom złożenie zamówienia w pełnej lub częściowej kolejności bądź w ogóle bez uporządkowania. We wszystkich przypadkach Firestore gwarantuje stabilne porządkowanie według tych reguł:

  • order_by jest wymagany, aby odwoływać się do wszystkich pól używanych z filtrem nierówności.
  • Wszystkie pola, które muszą się znaleźć w polu order_by, a które jeszcze nie istnieją, są dołączane w kolejności leksykograficznej nazw pól.
  • Jeśli zamówienie w __name__ nie zostało określone, jest dołączane domyślnie.

Pola są dołączone z tym samym kierunkiem sortowania co w ostatnim podanym porządku lub „ASCENDING”, jeśli nie określono kolejności. Na przykład:

  • ORDER BY a zmienia wartość na ORDER BY a ASC, __name__ ASC
  • ORDER BY a DESC zmienia wartość na ORDER BY a DESC, __name__ DESC
  • WHERE a > 1 zmienia wartość na WHERE a > 1 ORDER BY a ASC, __name__ ASC
  • WHERE __name__ > ... AND a > 1 zmienia wartość na WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
start_at

Cursor

Potencjalny prefiks pozycji w zestawie wyników, od której rozpoczyna się zapytanie.

Kolejność w zestawie wyników jest zgodna z klauzulą ORDER BY w pierwotnym zapytaniu.

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

Wyniki tego zapytania są uporządkowane według kolumny (b ASC, __name__ ASC).

Kursory mogą odwoływać się do pełnej kolejności lub prefiksu lokalizacji, ale nie mogą odwoływać się do większej liczby pól niż jest w tym celu podany w polu ORDER BY.

Nawiązując do powyższego przykładu, zastosowanie tych kursorów startowych może mieć różny wpływ:

  • START BEFORE (2, /k/123): rozpocznij zapytanie tuż przed a = 1 AND b > 2 AND __name__ > /k/123.
  • START AFTER (10): rozpoczęcie zapytania zaraz po a = 1 AND b > 10.

W odróżnieniu od metody OFFSET, która wymaga skanowania pierwszych N wyników do pominięcia, kursor początkowy umożliwia rozpoczęcie zapytania w pozycji logicznej. Pozycja nie jest wymagana do dopasowania do rzeczywistego wyniku. Spowoduje to skanowanie od tego miejsca do przodu, aby znaleźć następny dokument.

Wymagane:

  • Liczba wartości nie może być większa niż liczba pól określona w klauzuli ORDER BY.
end_at

Cursor

Potencjalny prefiks pozycji w zestawie wyników, na której kończy się zapytanie.

Funkcja jest podobna do START_AT, ale kontroluje pozycję końcową, a nie początkową.

Wymagane:

  • Liczba wartości nie może być większa niż liczba pól określona w klauzuli ORDER BY.
offset

int32

Liczba dokumentów do pominięcia przed zwróceniem pierwszego wyniku.

Ma to zastosowanie po ograniczeniach określonych przez WHERE, START AT i END AT, ale przed klauzulą LIMIT.

Wymagane:

  • Jeśli została określona, wartość nie może być mniejsza niż 0.
limit

Int32Value

Maksymalna liczba wyników do zwrócenia.

Ma zastosowanie po wszystkich innych ograniczeniach.

Wymagane:

  • Jeśli została określona, wartość nie może być mniejsza niż 0.
find_nearest

FindNearest

Opcjonalnie. Wyszukiwanie potencjalnych najbliższych sąsiadów.

Zostanie zastosowane po wszystkich innych filtrach i kolejności.

Znajduje wektory dystrybucyjne najbliżej danego wektora zapytania.

CollectionSelector

Wybór kolekcji, na przykład messages as m1.

Pola
collection_id

string

Identyfikator kolekcji. Po ustawieniu wybiera tylko kolekcje z tym identyfikatorem.

all_descendants

bool

Jeśli zasada ma wartość Fałsz, wybiera tylko te kolekcje, które są bezpośrednimi elementami podrzędnymi w elemencie parent określonym w elemencie RunQueryRequest. Jeśli ma wartość true (prawda), wybiera wszystkie kolekcje podrzędne.

CompositeFilter

filtr, który łączy wiele innych filtrów za pomocą podanego operatora;

Pola
op

Operator

Operator służący do łączenia wielu filtrów.

filters[]

Filter

Lista filtrów do połączenia.

Wymagane:

  • Dostępny jest co najmniej 1 filtr.

Operator

Operator filtra złożonego.

Wartości w polu enum
OPERATOR_UNSPECIFIED Nie określono. Tej wartości nie można używać.
AND Dokumenty są wymagane w przypadku wszystkich połączonych filtrów.
OR Dokumenty są wymagane w przypadku co najmniej jednego z połączonych filtrów.

Kierunek

Kierunek sortowania.

Wartości w polu enum
DIRECTION_UNSPECIFIED Nie określono.
ASCENDING Rosnąco.
DESCENDING Malejąco.

FieldFilter

Filtr konkretnego pola.

Pola
field

FieldReference

Pole, według którego chcesz filtrować.

op

Operator

Operator, według którego chcesz filtrować.

value

Value

Wartość do porównania.

Operator

Operator filtra pól.

Wartości w polu enum
OPERATOR_UNSPECIFIED Nie określono. Tej wartości nie można używać.
LESS_THAN

Podana wartość field jest mniejsza od podanej wartości value.

Wymagane:

  • Te field są pierwsze w kategorii order_by.
LESS_THAN_OR_EQUAL

Podana wartość field jest mniejsza od podanej wartości value lub jej równa.

Wymagane:

  • Te field są pierwsze w kategorii order_by.
GREATER_THAN

Podana wartość field jest większa od podanej wartości value.

Wymagane:

  • Te field są pierwsze w kategorii order_by.
GREATER_THAN_OR_EQUAL

Podana wartość field jest większa od lub równa podanej wartości value.

Wymagane:

  • Te field są pierwsze w kategorii order_by.
EQUAL Wartość field jest równa wartości value.
NOT_EQUAL

Wartość field nie jest równa wartości value.

Wymagane:

  • Nie ma innych elementów NOT_EQUAL, NOT_IN, IS_NOT_NULL ani IS_NOT_NAN.
  • Ten field jest pierwszy w kategorii order_by.
ARRAY_CONTAINS Podana tablica field to tablica, która zawiera podany element value.
IN

Podana wartość field jest równa co najmniej 1 wartości w danej tablicy.

Wymagane:

  • value to pole ArrayValue, które nie jest puste. Podlega ograniczeniom dyskoncji.
  • W tym samym zapytaniu nie ma filtrów NOT_IN.
ARRAY_CONTAINS_ANY

Podana tablica field to tablica, która zawiera dowolną z wartości znajdujących się w danej tablicy.

Wymagane:

  • value to pole ArrayValue, które nie jest puste. Podlega ograniczeniom dyskoncji.
  • Nie ma innych filtrów ARRAY_CONTAINS_ANY w tym samym odłączeniu.
  • W tym samym zapytaniu nie ma filtrów NOT_IN.
NOT_IN

Wartości field nie ma w podanej tablicy.

Wymagane:

  • Że value to niepusty element ArrayValue, który może zawierać maksymalnie 10 wartości.
  • Nie ma innych elementów OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL ani IS_NOT_NAN.
  • Ten field jest pierwszy w kategorii order_by.

FieldReference

Odwołanie do pola w dokumencie, np. stats.operations.

Pola
field_path

string

Odwołanie do pola w dokumencie.

Wymagane:

  • MUSI być ciągiem rozdzielonym kropkami (.) segmentów, przy czym każdy segment musi być zgodny z ograniczeniami document field name.

Filtruj

Filtr.

Pola
Pole sumy filter_type. Typ filtra. filter_type może być tylko jedną z tych wartości:
composite_filter

CompositeFilter

Filtr złożony.

field_filter

FieldFilter

Filtr w polu dokumentu.

unary_filter

UnaryFilter

Filtr, który przyjmuje dokładnie 1 argument.

FindNearest

Konfiguracja wyszukiwania Najbliższych sąsiadów.

Pola
vector_field

FieldReference

To pole jest wymagane. Zindeksowane pole wektorów do wyszukania. Mogą zostać zwrócone tylko dokumenty zawierające wektory, których wymiary pasują do parametru query_vector.

query_vector

Value

To pole jest wymagane. Wektor zapytania, którego używamy do wyszukiwania. Wartość musi być wektorem o maksymalnie 2048 wymiarach.

distance_measure

DistanceMeasure

To pole jest wymagane. Wymagana miara odległości.

limit

Int32Value

To pole jest wymagane. Liczba najbliższych sąsiadów do zwrócenia. Musi być dodatnią liczbą całkowitą nie większą niż 1000.

DistanceMeasure

Miara odległości używana przy porównywaniu wektorów.

Wartości w polu enum
DISTANCE_MEASURE_UNSPECIFIED Nie należy go ustawiać.
EUCLIDEAN Mierzy odległość UECLIDEAN między wektorami. Zobacz euklidesowy, aby dowiedzieć się więcej.
COSINE Porównuje wektory na podstawie kąta między nimi, co pozwala zmierzyć podobieństwo, które nie jest oparte na wielkości wektorów. Zalecamy używanie funkcji DOT_PRODUCT ze znormalizowanymi wektorami jednostowymi zamiast odległości COSINE, ponieważ jest to odpowiednik matematyczny z lepszą wydajnością. Więcej informacji znajdziesz w sekcji Podobieństwo cosinusowe.
DOT_PRODUCT Działa podobnie jak cosinus, ale jest zależna od wielkości wektorów. Więcej informacji znajdziesz w sekcji Iloczyn skalarny.

Zamówienie

Zamówienie na polu.

Pola
field

FieldReference

Pole, według którego chcesz sortować.

direction

Direction

Kierunek, według którego należy sortować dane. Domyślna wartość to ASCENDING.

Odwzorowanie

Odwzorowanie pól dokumentu do zwrócenia.

Pola
fields[]

FieldReference

Pola do zwrócenia.

Jeśli jest puste, zwracane są wszystkie pola. Aby zwrócić tylko nazwę dokumentu, użyj funkcji ['__name__'].

UnaryFilter

Filtr z 1 operandem.

Pola
op

Operator

Operator jednoargumentowy do zastosowania.

Pole sumy operand_type. Argument filtra. operand_type może być tylko jedną z tych wartości:
field

FieldReference

Pole, do którego chcesz zastosować operator.

Operator

Operator jednoargumentowy.

Wartości w polu enum
OPERATOR_UNSPECIFIED Nie określono. Tej wartości nie można używać.
IS_NAN Podana wartość field jest równa NaN.
IS_NULL Podana wartość field jest równa NULL.
IS_NOT_NAN

Podana wartość field nie jest równa NaN.

Wymagane:

  • Nie ma innych elementów NOT_EQUAL, NOT_IN, IS_NOT_NULL ani IS_NOT_NAN.
  • Ten field jest pierwszy w kategorii order_by.
IS_NOT_NULL

Podana wartość field nie jest równa NULL.

Wymagane:

  • Pojedynczy NOT_EQUAL, NOT_IN, IS_NOT_NULL lub IS_NOT_NAN.
  • Ten field jest pierwszy w kategorii order_by.

Cel

Specyfikacja zestawu dokumentów do nasłuchiwania.

Pola
target_id

int32

Identyfikator elementu docelowego w strumieniu. Musi być liczbą dodatnią i różną od zera.

Jeśli target_id ma wartość 0 (lub nie jest określony), serwer przypisze identyfikator do tego celu i zwróci go w zdarzeniu TargetChange::ADD. Po dodaniu celu z parametrem target_id=0 wszystkie kolejne cele też muszą mieć target_id=0. Jeśli po dodaniu celu z parametrem target_id=0 do serwera zostanie wysłane żądanie AddTarget z target_id != 0, serwer natychmiast wyśle odpowiedź ze zdarzeniem TargetChange::Remove.

Pamiętaj, że jeśli klient wysyła wiele żądań AddTarget bez identyfikatora, kolejność identyfikatorów zwracanych w funkcji TargetChage.target_ids jest niezdefiniowana. Dlatego klient powinien podać identyfikator docelowy, zamiast czekać na jego przypisanie przez serwer.

Jeśli target_id ma wartość inną niż 0, w strumieniu nie może istnieć aktywny cel o tym samym identyfikatorze.

once

bool

Czy cel powinien zostać usunięty, gdy jest aktualny i spójny.

expected_count

Int32Value

Liczba dokumentów, które ostatnio pasowały do zapytania w tokenie wznawiania lub czasie odczytu.

Ta wartość ma znaczenie tylko wtedy, gdy podano resume_type. Ta wartość jest obecna i ma więcej niż 0 sygnałów, że klient chce uwzględnić w odpowiedzi parametr ExistenceFilter.unchanged_names.

Pole sumy target_type. Typ celu, którego ma dotyczyć nasłuchiwanie. target_type może być tylko jedną z tych wartości:
query

QueryTarget

Cel określony przez zapytanie.

documents

DocumentsTarget

Miejsce docelowe określone przez zbiór nazw dokumentów.

Pole sumy resume_type. Kiedy zacząć słuchać

Jeśli zostanie określony, zwracane będą tylko pasujące dokumenty, które zostały zaktualizowane PO resume_token lub read_time. W przeciwnym razie wszystkie pasujące dokumenty zostaną zwrócone przed wprowadzeniem kolejnych zmian. resume_type może być tylko jedną z tych wartości:

resume_token

bytes

Token wznowienia z poprzedniego elementu TargetChange dla identycznego celu.

Użycie tokena wznowienia z innym miejscem docelowym nie jest obsługiwane i może się nie powieść.

read_time

Timestamp

Zacznij słuchać po określonej wartości read_time.

Klient musi znać stan dopasowania dokumentów.

DocumentsTarget

Miejsce docelowe określone przez zbiór nazw dokumentów.

Pola
documents[]

string

Nazwy dokumentów do pobrania. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}. Żądanie nie powiedzie się, jeśli którykolwiek z dokumentów nie jest zasobem podrzędnym danego elementu database. Zduplikowane nazwy zostaną wykluczone.

QueryTarget

Cel określony przez zapytanie.

Pola
parent

string

Nazwa zasobu nadrzędnego. W formacie projects/{project_id}/databases/{database_id}/documents lub projects/{project_id}/databases/{database_id}/documents/{document_path}. Na przykład: projects/my-project/databases/my-database/documents lub projects/my-project/databases/my-database/documents/chatrooms/my-chatroom

Pole sumy query_type. Zapytanie do wykonania. query_type może być tylko jedną z tych wartości:
structured_query

StructuredQuery

Uporządkowane zapytanie.

TargetChange

Obserwowane cele zmieniły się.

Pola
target_change_type

TargetChangeType

Rodzaj wprowadzonej zmiany.

target_ids[]

int32

Identyfikatory miejsc docelowych, które uległy zmianie.

Jeśli pole jest puste, zmiana zostanie zastosowana do wszystkich wartości docelowych.

Kolejność identyfikatorów elementów docelowych nie jest zdefiniowana.

cause

Status

Błąd, który spowodował tę zmianę (w stosownych przypadkach).

resume_token

bytes

Token, który może być używany do wznawiania strumienia dla danego elementu target_ids lub wszystkich celów, jeśli target_ids jest pusty.

Nie ustawiono dla każdej zmiany wartości docelowej.

read_time

Timestamp

Spójna wartość read_time w przypadku danego elementu target_ids (pominięta, gdy elementy target_ids nie mają spójnego zrzutu).

Gwarantujemy, że strumień read_time z pole target_ids będzie pusty, gdy cały strumień osiągnie nowy spójny zrzut. Gwarantujemy, że wiadomości ADD, CURRENT i RESETUJ zostaną ostatecznie wygenerowane przez utworzenie nowego spójnego podsumowania. Wyjątkiem są wiadomości NO_CHANGE i REMOVE.

W przypadku danego strumienia wartość read_time na pewno będzie rosnąć monotonicznie.

TargetChangeType

rodzaj zmiany.

Wartości w polu enum
NO_CHANGE Nie wprowadzono żadnych zmian. Służy tylko do wysłania zaktualizowanego resume_token.
ADD Cele zostały dodane.
REMOVE Cele zostały usunięte.
CURRENT

Wartości docelowe odzwierciedlają wszystkie zmiany wprowadzone przed dodaniem celów do strumienia.

Ta wiadomość zostanie wysłana po ustawieniu wartości read_time lub z tą datą, która jest co najmniej równa wartości czasu dodania wartości docelowych.

Detektory mogą zaczekać na tę zmianę, jeśli potrzebna jest semantyka odczytu po zapisaniu.

RESET

Cele zostały zresetowane. W kolejnych zmianach zostanie zwrócony ich nowy stan początkowy.

Po zakończeniu stanu początkowego wartość CURRENT zostanie zwrócona, nawet jeśli celem była wcześniej CURRENT.

TransactionOptions

Opcje tworzenia nowej transakcji.

Pola
Pole sumy mode. Tryb transakcji. mode może być tylko jedną z tych wartości:
read_only

ReadOnly

Transakcja może być używana tylko do operacji odczytu.

read_write

ReadWrite

Transakcja może być używana zarówno do odczytu, jak i zapisu.

ReadOnly

Opcje transakcji, których można używać tylko do odczytu dokumentów.

Pola
Pole sumy consistency_selector. Tryb spójności tej transakcji. Jeśli nie jest skonfigurowana, domyślnie stosowana jest silna spójność. consistency_selector może być tylko jedną z tych wartości:
read_time

Timestamp

Odczyt dokumentów w określonym czasie.

Musi to być sygnatura czasowa precyzji określona w mikrosekundach z ostatniej godziny lub jeśli włączona jest funkcja odzyskiwania do określonego momentu, może to być dodatkowo sygnatura czasowa obejmująca całą minutę z ostatnich 7 dni.

ReadWrite

Opcje transakcji, których można używać do odczytu i zapisu dokumentów.

Firestore nie zezwala na tworzenie transakcji odczytu i zapisu przez zewnętrzne żądania uwierzytelniania.

Pola
retry_transaction

bytes

Opcjonalna transakcja do ponowienia.

UpdateDocumentRequest

Prośba dotycząca: Firestore.UpdateDocument.

Pola
document

Document

To pole jest wymagane. Zaktualizowany dokument. Tworzy dokument, jeśli jeszcze nie istnieje.

update_mask

DocumentMask

Pola do zaktualizowania. Żadne ścieżki pól w masce nie mogą zawierać zarezerwowanej nazwy.

Jeśli dokument istnieje na serwerze, a pola, do których nie odwołano się w masce, pozostają niezmienione. Pola, do których odwołuje się maska, ale nie występują w dokumencie wejściowym, są usuwane z dokumentu na serwerze.

mask

DocumentMask

Pola do zwrócenia. Jeśli wartość nie jest ustawiona, zwraca wszystkie pola.

Jeśli dokument zawiera pole, którego nie ma w masce, nie zostanie ono zwrócone w odpowiedzi.

current_document

Precondition

Opcjonalny warunek wstępny w dokumencie. Żądanie nie powiedzie się, jeśli ten parametr jest ustawiony, a dokument docelowy nie spełnia tego warunku.

Wartość

Wiadomość, która może zawierać dowolny z obsługiwanych typów wartości.

Pola
Pole sumy value_type. Wymagana jest wartość. value_type może być tylko jedną z tych wartości:
null_value

NullValue

Wartość null.

boolean_value

bool

Wartość logiczna.

integer_value

int64

Liczba całkowita.

double_value

double

Podwójna wartość.

timestamp_value

Timestamp

Wartość sygnatury czasowej.

Dokładność pomiaru tylko w mikrosekundach. W przypadku przechowywania dodatkowa precyzja jest zaokrąglana w dół.

string_value

string

Wartość ciągu znaków.

Ciąg znaków reprezentujący kod UTF-8 nie może przekraczać 1 MiB do 89 bajtów. Zapytania uwzględniają tylko pierwsze 1500 bajtów reprezentacji UTF-8.

bytes_value

bytes

Wartość w bajtach.

Nie może przekraczać 1 MiB do 89 bajtów. Zapytania uwzględniają tylko pierwsze 1500 bajtów.

reference_value

string

Odniesienie do dokumentu. Przykład: projects/{project_id}/databases/{database_id}/documents/{document_path}.

geo_point_value

LatLng

Wartość punktu geograficznego reprezentująca punkt na powierzchni Ziemi.

array_value

ArrayValue

Wartość tablicy.

Nie może zawierać bezpośrednio innej wartości tablicy, może jednak zawierać mapę zawierającą inną tablicę.

map_value

MapValue

Wartość mapy.

Zapis

Pismo w dokumencie.

Pola
update_mask

DocumentMask

Pola do zaktualizowania w tym zapisie.

To pole można skonfigurować tylko wtedy, gdy operacja to update. Jeśli maska nie jest ustawiona dla update, a dokument istnieje, wszystkie istniejące dane zostaną zastąpione. Jeśli maska jest ustawiona, a dokument na serwerze zawiera pola, których nie ma maska, pozostają one bez zmian. Pola, do których odwołuje się maska, ale nie występują w dokumencie wejściowym, są usuwane z dokumentu na serwerze. Ścieżki pól w tej masce nie mogą zawierać zarezerwowanej nazwy pola.

update_transforms[]

FieldTransform

Przekształcenia, które mają zostać wykonane po aktualizacji.

To pole można skonfigurować tylko wtedy, gdy operacja to update. Jeśli ten zapis jest obecny, jest on odpowiednikiem wykonania funkcji update i transform w tym samym dokumencie atomowo i w kolejności.

current_document

Precondition

Opcjonalny warunek wstępny w dokumencie.

Zapis nie powiedzie się, jeśli ten parametr jest ustawiony, a dokument docelowy nie spełnia tego warunku.

Pole sumy operation. Operacja do wykonania. operation może być tylko jedną z tych wartości:
update

Document

Dokument do napisania.

delete

string

Nazwa dokumentu do usunięcia. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}.

transform

DocumentTransform

Stosuje przekształcenie do dokumentu.

WriteRequest

Prośba dotycząca: Firestore.Write.

Pierwsze żądanie powoduje utworzenie strumienia lub wznowienie istniejącego z użyciem tokena.

Podczas tworzenia nowego strumienia serwer wysyła odpowiedź zawierającą tylko identyfikator i token, których należy użyć w kolejnym żądaniu.

Podczas wznawiania strumienia serwer przesyła najpierw wszystkie odpowiedzi, które pojawią się później niż podany token. Następnie odpowiedź zawierająca tylko aktualny token zostanie użyta w następnym żądaniu.

Pola
database

string

To pole jest wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}. Jest to wymagane tylko w pierwszej wiadomości.

stream_id

string

Identyfikator strumienia zapisu do wznowienia. Można to określić tylko w pierwszej wiadomości. Jeśli pozostawisz to pole puste, zostanie utworzony nowy strumień zapisu.

writes[]

Write

Zapisy do zastosowania.

Zawsze wykonywane atomowo i w kolejności. To pole musi być puste przy pierwszym żądaniu. W ostatnim żądaniu może być puste. To pole nie może być puste w przypadku pozostałych żądań.

stream_token

bytes

Token strumienia, który został wcześniej wysłany przez serwer.

Klient powinien ustawić w tym polu token z ostatniego otrzymanego parametru WriteResponse. Jest to potwierdzenie, że klient otrzymał odpowiedzi przesłane na ten token. Po wysłaniu tego tokena wcześniejsze tokeny mogą nie być już używane.

Serwer może zamknąć strumień, jeśli jest zbyt wiele niepotwierdzonych odpowiedzi.

Podczas tworzenia nowego strumienia pozostaw to pole nieskonfigurowane. Aby wznowić strumień w określonym momencie, skonfiguruj to pole oraz pole stream_id.

Podczas tworzenia nowego strumienia pozostaw to pole nieskonfigurowane.

labels

map<string, string>

Etykiety powiązane z tym żądaniem zapisu.

WriteResponse

Odpowiedź dotycząca: Firestore.Write.

Pola
stream_id

string

Identyfikator strumienia. Ustawiona tylko w pierwszej wiadomości, gdy utworzono nowy strumień.

stream_token

bytes

Token reprezentujący pozycję tej odpowiedzi w strumieniu. Klient może go użyć, aby wznowić strumieniowanie na tym etapie.

To pole jest zawsze ustawione.

write_results[]

WriteResult

Wynik zastosowania zapisów.

Ten i-ty wynik zapisu odpowiada i-temu zapisowi w żądaniu.

commit_time

Timestamp

Czas wystąpienia zatwierdzenia. Gwarantujemy, że każdy odczyt o wartości read_time lub wyższej z udziału w odczytaniu będzie miał wpływ na zastosowanie zapisu.

WriteResult

Wynik zastosowania zapisu.

Pola
update_time

Timestamp

Czas ostatniej aktualizacji dokumentu po zastosowaniu zapisu. Nie ustawiono po: delete.

Jeśli zapis nie spowodował zmiany dokumentu, będzie to poprzednia wartość update_time.

transform_results[]

Value

Wyniki zastosowania każdego z elementów typu DocumentTransform.FieldTransform w tej samej kolejności.