Package google.firestore.v1

Indeks

Firestore

Usługa Cloud Firestore.

Cloud Firestore to szybka, w pełni zarządzana, bezserwerowa, chmurowa baza danych dokumentów NoSQL, która upraszcza przechowywanie i synchronizowanie danych oraz wykonywanie na nich zapytań z aplikacji mobilnych, internetowych i aplikacji IoT na globalną skalę. Biblioteki klienta umożliwiają synchronizację na żywo i pomoc w trybie offline, a funkcje zabezpieczeń oraz integracje z Firebase i Google Cloud Platform przyspieszają tworzenie aplikacji naprawdę bezserwerowych.

BatchGetDocuments

rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (BatchGetDocumentsResponse)

Pobiera wiele dokumentów.

Nie ma gwarancji, że dokumenty zwrócone za pomocą tej metody zostaną zwrócone w kolejności, w jakiej je żądano.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Tworzenie wsadowego

rpc BatchWrite(BatchWriteRequest) returns (BatchWriteResponse)

Stosuje grupę operacji zapisu.

Metoda BatchWrite nie stosuje operacji zapisu atomowo i może zastosować je w kolejności. Metoda nie pozwala na więcej niż jeden zapis na dokument. Każdy zapis jest sprawdzany lub kończy się niepowodzeniem niezależnie. Informacje o stanie powodzenia każdego zapisu znajdziesz w sekcji BatchWriteResponse.

Jeśli potrzebujesz atomowego zestawu zapisów, użyj zamiast tego Commit.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Rozpoczęcie transakcji

rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse)

rozpoczyna nową transakcję;

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Zatwierdzenie

rpc Commit(CommitRequest) returns (CommitResponse)

Potwierdza transakcję i opcjonalnie aktualizują dokumenty.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Utwórz dokument

rpc CreateDocument(CreateDocumentRequest) returns (Document)

Tworzy nowy dokument.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Usuń dokument

rpc DeleteDocument(DeleteDocumentRequest) returns (Empty)

Usuwa dokument.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

GetDocument

rpc GetDocument(GetDocumentRequest) returns (Document)

Pobiera jeden dokument.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Identyfikatory kolekcji list

rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse)

Zawiera listę wszystkich identyfikatorów kolekcji pod dokumentem.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Wyświetlanie listy dokumentów

rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse)

Wyświetla listę dokumentów.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Posłuchaj

rpc Listen(ListenRequest) returns (ListenResponse)

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

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Zapytanie partycjonowania

rpc PartitionQuery(PartitionQueryRequest) returns (PartitionQueryResponse)

Partycjonuje zapytanie, zwracając kursory partycji, których można używać do równoległego uruchamiania 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 protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Przywróć

rpc Rollback(RollbackRequest) returns (Empty)

Wycofuje transakcję.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Uruchomienie zapytania agregacji

rpc RunAggregationQuery(RunAggregationQueryRequest) returns (RunAggregationQueryResponse)

Uruchamia zapytanie agregacji.

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

Ogólny przykład:

-- 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 protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Uruchom zapytanie

rpc RunQuery(RunQueryRequest) returns (RunQueryResponse)

Uruchamia zapytanie.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

ZaktualizujDokument

rpc UpdateDocument(UpdateDocumentRequest) returns (Document)

Aktualizuje lub wstawia dokument.

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Zapis

rpc Write(WriteRequest) returns (WriteResponse)

Strumieniuje po kolei partie aktualizacji i usunięć dokumentów. Ta metoda jest dostępna tylko przez gRPC lub WebChannel (ale nie REST).

Zakresy autoryzacji

Wymaga jednego z tych zakresów protokołu OAuth:

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

Więcej informacji znajdziesz w artykule o uwierzytelnianiu (w języku angielskim).

Wynik agregacji

Wynik pojedynczego zasobnika z zapytania agregacji Firestore.

Klucze funkcji aggregate_fields są takie same w przypadku wszystkich wyników w zapytaniu agregowanym. W odróżnieniu od zapytań dokumentów, w których przypadku każdy wynik może zawierać inne pola.

Pola
aggregate_fields

map<string, Value>

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

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

ArrayValue

Wartość tablicowa.

Pola
values[]

Value

Wartości w tablicy.

BatchGetDocumentsRequest

Prośba dotycząca usługi Firestore.BatchGetDocuments.

Pola
database

string

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 zakończy się niepowodzeniem, jeśli żaden z dokumentów nie jest zasobem podrzędnym danego elementu database. Zduplikowane nazwy zostaną usunięte.

mask

DocumentMask

Pola do zwrócenia. Jeśli zasada nie jest skonfigurowana, zwraca wszystkie pola.

Jeśli dokument ma 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 mieć tylko jedną z tych wartości:
transaction

bytes

Odczytywanie dokumentów w ramach transakcji.

new_transaction

TransactionOptions

Rozpoczyna nową transakcję i odczytuje dokumenty. Domyślnie jest to transakcja 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 z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

Odpowiedź BatchGetDocuments

Przesłana odpowiedź na zapytanie 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 atrybut BatchGetDocumentsRequest.new_transaction.

read_time

Timestamp

Czas odczytu dokumentu. Liczba ta może rosnąć monotycznie. W tym przypadku w tym przypadku wcześniejsze dokumenty w strumieniu wyników nie zmienią się między czasem odczytu a tym.

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

Document

Dokument, o który poproszono.

missing

string

Nazwa dokumentu, która została wysłana, ale nie istnieje. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}.

BatchWriteRequest

Prośba dotycząca usługi Firestore.BatchWrite.

Pola
database

string

Wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

writes[]

Write

Zapisy, które mają zostać zastosowane.

Metoda nie stosuje atomowych zapisów i nie gwarantuje kolejności. Każdy zapis jest sprawdzany lub kończy się niepowodzeniem niezależnie. Nie możesz zapisać w tym samym dokumencie więcej niż raz na jedno żądanie.

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 wynik i-tego zapisu odpowiada i-temu zapisowi w żądaniu.

status[]

Status

Stan zastosowania zapisów.

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

StartTransactionRequest

Prośba dotycząca usługi Firestore.BeginTransaction.

Pola
database

string

Wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

options

TransactionOptions

Opcje transakcji. Domyślnie jest to transakcja do odczytu i zapisu.

StartTransactionResponse

Odpowiedź dla: 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 zawiera 8 bitów sekwencji. Jedynym wyjątkiem jest ostatni bajt, który może przechowywać maksymalnie 8 bitów. Pole padding określa liczbę bitów ostatniego bajtu, które mają być ignorowane jako „ dopełnienie”. Wartości wypełnienia bity są nieokreślone i muszą być ignorowane.

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

Rozmiar z BitSequence (liczby bitów, które zawiera) oblicza się według tego wzoru: (bitmap.length * 8) - padding.

Pola
bitmap

bytes

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

padding

int32

Liczba bitów ostatniego bajtu w argumencie bitmap, które mają zostać zignorowane jako „pełnienie”. Jeśli długość parametru 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.

Filtr BloomFiltr

Filtr kwitnienia (https://en.wikipedia.org/wiki/Bloom_filter).

Filtr kwitnienia haszuje wpisy za pomocą MD5 i traktuje wynikowy 128-bitowy hasz jako 2 różne 64-bitowe wartości skrótu, interpretowane jako nieoznaczone liczby całkowite z użyciem 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ą wzoru, zaczynając od i=0:

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

Otrzymane wartości są następnie pobierane modulo z liczbą bitów w filtrze rozkwitu, aby pobrać elementy filtra rozkwitu do przetestowania dla danego wpisu.

Pola
bits

BitSequence

Dane filtra kwitnienia.

hash_count

int32

Liczba haszy używanych przez algorytm.

CommitRequest

Prośba dotycząca usługi Firestore.Commit.

Pola
database

string

Wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

writes[]

Write

Zapisy, które mają zostać zastosowane.

Zawsze wykonywany atomowo i w określonej kolejności.

transaction

bytes

Jeśli jest ustawione, stosuje wszystkie zapisy w tej transakcji i je zatwierdza.

Odpowiedź zatwierdzenia

Odpowiedź dla: Firestore.Commit.

Pola
write_results[]

WriteResult

Wynik zastosowania zapisów.

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

commit_time

Timestamp

Czas realizacji zatwierdzenia. Każdy odczyt o wartości read_time lub większej jest gwarantowany, aby sprawdzić efekty zatwierdzenia.

CreateDocumentRequest

Prośba dotycząca usługi Firestore.CreateDocument.

Pola
parent

string

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

Wymagane. Identyfikator kolekcji względem parent, do listy. Na przykład: chatrooms.

document_id

string

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

Opcjonalnie. Jeśli go nie podasz, usługa otrzyma identyfikator.

document

Document

Wymagane. Dokument do utworzenia. Pole name nie może być ustawione.

mask

DocumentMask

Pola do zwrócenia. Jeśli zasada nie jest skonfigurowana, zwraca wszystkie pola.

Jeśli dokument zawiera pole, którego nie ma w tej 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 zapytania.

Może zawierać mniej wartości niż określono w klauzuli kolejności.

before

bool

Określa, czy pozycja znajduje się tuż przed podanymi wartościami lub tuż po nich, zależnie od kolejności sortowania zdefiniowanej przez zapytanie.

DeleteDocumentRequest

Prośba dotycząca usługi Firestore.DeleteDocument.

Pola
name

string

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 dotyczący dokumentu. Jeśli ta wartość zostanie ustawiona, a dokument docelowy nie spełni tego żądania, żądanie zakończy się niepowodzeniem.

Dokument

Dokument Firestore.

Maksymalny rozmiar to 1 MiB–4 bajty.

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. Czas utworzenia dokumentu.

Ta wartość zwiększa się monotonicznie, gdy dokument jest usuwany, a następnie odtworzony. Można je też porównywać z wartościami z innych dokumentów i elementem read_time zapytania.

update_time

Timestamp

Tylko dane wyjściowe. Czas ostatniej modyfikacji dokumentu.

Początkowo ta wartość jest ustawiona na create_time, a następnie monotonicznie zwiększa się z każdą zmianą w dokumencie. Można je też porównywać z wartościami z innych dokumentów i elementem read_time zapytania.

Zmiana dokumentu

Element Document został zmieniony.

Może to być wynikiem wielu writes, w tym usunięcia, które ostatecznie spowodowało utworzenie nowej wartości w polu Document.

W przypadku tej samej zmiany logicznej może zostać zwróconych wiele wiadomości DocumentChange, jeśli ma to wpływ na wiele celów.

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 celów, które pasują do tego dokumentu.

removed_target_ids[]

int32

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

Usuwanie dokumentu

Element Document został usunięty.

Może to być wynikiem wielu writes (w tym aktualizacji), z których ostatni usunął element Document.

W przypadku tego samego logicznego usunięcia może zostać zwróconych wiele wiadomości DocumentDelete, jeśli problem dotyczy wielu celów.

Pola
document

string

Nazwa zasobu usuniętego obiektu Document.

removed_target_ids[]

int32

Zestaw identyfikatorów wartości docelowych, które wcześniej pasowały do tej encji.

read_time

Timestamp

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

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

DocumentMask (Maska dokumentu)

Zbiór ścieżek pól w dokumencie. Służy do ograniczania operacji pobierania lub aktualizowania dokumentu do podzbioru jego pól. Różni się ona od standardowych masek pól, ponieważ zawsze ma zakres ograniczony do pola 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 Document.fields.

Usuwanie dokumentu

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

Wysyłane, jeśli dokument nie jest już odpowiedni dla elementu docelowego i jest niewidoczny. Może być wysyłana zamiast DocumentDelete lub DocumentChange, jeśli serwer nie może wysłać nowej wartości dokumentu.

W przypadku tego samego logicznego zapisu lub usunięcia może zostać zwróconych wiele wiadomości DocumentRemove.

Pola
document

string

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

removed_target_ids[]

int32

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

read_time

Timestamp

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

Większe lub równe commit_time 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 określonej kolejności. To pole nie może być puste.

Przekształcenie pola

Przekształcenie pola dokumentu.

Pola
field_path

string

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

Pole sumy transform_type. Przekształcenie, które zostanie zastosowane w polu. transform_type może mieć 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 liczba zmiennoprzecinkowa. Jeśli pole nie jest liczbą całkowitą ani zmiennoprzecinkową albo jeśli pole jeszcze nie istnieje, przekształcenie ustawi w polu podaną wartość. Jeśli jedna z podanych wartości lub obecna wartość pola to wartości zmiennoprzecinkowe, obie te wartości zostaną zinterpretowane jako liczby zmiennoprzecinkowe. Podwójna arytmetyka i reprezentacja wartości podwójnej precyzji są zgodne ze standardem IEEE 754. Jeśli występuje dodatnie/ujemne przekroczenie liczby całkowitej, pole jest przekształcane na największą dodatnią/ujemną liczbę całkowitą.

maximum

Value

Ustawia maksymalną wartość pola na jego bieżącą i podaną wartość.

Musi to być liczba całkowita lub liczba zmiennoprzecinkowa. Jeśli pole nie jest liczbą całkowitą ani zmiennoprzecinkową albo jeśli pole jeszcze nie istnieje, przekształcenie ustawi w polu podaną wartość. W przypadku zastosowania maksymalnej operacji, w której pole i wartość wejściowa są różnych typów (tzn. jedna jest liczbą całkowitą, a druga to podwójna), pole przyjmuje typ większego operandu. Jeśli operandy są równoważne (np. 3 i 3.0), pole nie zmienia się. 0, 0,0 i -0,0 to zero. Maksymalna wartość środków przedpłaconych i 0 wartości wejściowej to zawsze wartość przedpłacona. Maksymalna wartość liczbowa x i NaN to NaN.

minimum

Value

Ustawia w polu minimalną wartość bieżącej i podaną wartość.

Musi to być liczba całkowita lub liczba zmiennoprzecinkowa. Jeśli pole nie jest liczbą całkowitą ani zmiennoprzecinkową albo jeśli pole jeszcze nie istnieje, przekształcenie ustawi w polu wartość wejściową. Jeśli stosowana jest operacja minimalna, w której pole i wartość wejściowa są różnych typów (tzn. jedna jest liczbą całkowitą, a drugą jest liczbą podwójną), pole przyjmuje typ mniejszego operandu. Jeśli operandy są równoważne (np. 3 i 3.0), pole nie zmienia się. 0, 0,0 i -0,0 to zero. Najniższa wartość przedpłaconej i 0 wejściowa to zawsze wartość przedpłacona. Minimalną wartością każdej wartości liczbowej x i NaN jest NaN.

append_missing_elements

ArrayValue

Dołącz podane elementy w kolejności, jeśli nie występują jeszcze w bieżącej wartości pola. Jeśli pole nie jest tablicą lub jeśli pole jeszcze nie istnieje, najpierw ustawiane jest puste pole.

Liczby równoważne różnych typów (np. 3L i 3,0) są uznawane za równe podczas sprawdzania, czy brakuje wartości. NaN jest równa NaN, a Null jest równa null. Jeśli dane wejściowe zawierają kilka równoważnych wartości, brana jest pod uwagę tylko pierwsza z nich.

Powiązany wynik przekształcenia będzie miał wartość null.

remove_all_from_array

ArrayValue

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

Przy podejmowaniu decyzji o usunięciu elementu uznaje się, że liczby równoważne różnych typów (np. 3L i 3.0). NaN jest równa NaN, a Null jest równa null. Spowoduje to usunięcie wszystkich równoważnych wartości, jeśli istnieją duplikaty.

Powiązany wynik przekształcenia będzie miał wartość null.

Wartość serwera

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 Godzina, w której serwer przetworzył żądanie, z dokładnością do milisekund. Jeśli użyjesz go w wielu polach (tych samych lub różnych dokumentach) w transakcji, wszystkie pola będą miały tę samą sygnaturę czasową serwera.

Statystyki wykonania

Statystyki wykonania dla zapytania.

Pola
results_returned

int64

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

execution_duration

Duration

Całkowity czas wykonania zapytania w backendzie.

read_operations

int64

Łączna liczba płatnych operacji odczytu.

debug_stats

Struct

Debugowanie statystyk wykonania zapytania. Pamiętaj, że statystyki debugowania mogą się zmieniać wraz z rozwojem Firestore. Może to obejmować: { "indexes_entries_scanned": "1000", "documents_scanned": "20", "billing_details" : { "documents_billable": "20", "index_entries_billable": "1000", "min_query_cost": "0" }

Filtr ExistenceFilter

Skrót wszystkich dokumentów pasujących do danego miejsca docelowego.

Pola
target_id

int32

Identyfikator celu, do którego ma zastosowanie ten filtr.

count

int32

Łączna liczba dokumentów, które pasują do: target_id.

Jeśli liczba pasujących dokumentów na koncie klienta różni się od liczby pasujących dokumentów, klient musi ręcznie określić, które dokumenty nie pasują już do wartości docelowej.

Aby ułatwić sobie to ustalenie, klient może użyć filtra kwitnienia unchanged_names, testując WSZYSTKIE nazwy dokumentów pod kątem tego filtra; jeśli nazwa dokumentu NIE występuje w filtrze, oznacza to, że dokument nie pasuje już do elementu docelowego.

unchanged_names

BloomFilter

Filtr rozkwitu, który pomimo swojej nazwy zawiera kodowanie bajtowe UTF-8 nazw zasobów WSZYSTKICH dokumentów pasujących do reguły target_id. Ma postać projects/{project_id}/databases/{database_id}/documents/{document_path}.

Ten filtr rozkwitu może zostać pominięty przez serwer według własnego uznania, na przykład w przypadku stwierdzenia, że klient nie będzie go używać, lub gdy obliczenia i transmisje są zbyt kosztowne pod względem obliczeń. Klienci muszą właściwie radzić sobie z brakiem tego pola, wracając do logiki użytej przed jego stworzeniem. czyli ponownie dodaj środowisko docelowe bez tokena wznowienia, aby sprawdzić, które dokumenty w pamięci podręcznej klienta są niezsynchronizowane.

ExplainMetrics

Przedstaw dane dotyczące zapytania.

Pola
plan_summary

PlanSummary

Informacje o fazie planowania dla zapytania.

execution_stats

ExecutionStats

Zbiorcze statystyki z wykonania zapytania. Występuje tylko wtedy, gdy zasada ExplainOptions.analyze ma wartość Prawda.

ExplainOptions

Wyjaśnij opcje zapytania.

Pola
analyze

bool

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

Jeśli wartość domyślna to fałsz (domyślnie), zapytanie zostanie zaplanowane i zwróci tylko dane z etapów planowania.

Jeśli wybrano opcję prawda, zapytanie zostanie zaplanowane i wykonane, tak aby zwracały pełne wyniki zapytania wraz ze wskaźnikami dotyczącymi etapu planowania i wykonania.

GetDocumentRequest

Prośba dotycząca usługi Firestore.GetDocument.

Pola
name

string

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 zasada nie jest skonfigurowana, 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 mieć tylko jedną z tych wartości:
transaction

bytes

Odczytywanie dokumentu w ramach transakcji.

read_time

Timestamp

Odczytuje wersję dokumentu w danym momencie.

Musi to być sygnatura czasowa z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

Żądanie dotyczące identyfikatorów kolekcji

Prośba dotycząca usługi Firestore.ListCollectionIds.

Pola
parent

string

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. Wymagana jest wartość z zakresu od 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 mieć 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 z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

Odpowiedź identyfikatora kolekcji

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.

Wyświetlanie listy dokumentów

Prośba dotycząca usługi Firestore.ListDocuments.

Pola
parent

string

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 parent, do listy.

Na przykład: chatrooms lub messages.

Jest to opcjonalne. Jeśli nie zostanie podany, Firestore będzie wyświetlać dokumenty ze wszystkich kolekcji w ramach podanego parent.

page_size

int32

Opcjonalnie. Maksymalna liczba dokumentów do zwrócenia w jednej odpowiedzi.

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

page_token

string

Opcjonalnie. Token strony otrzymany z poprzedniej odpowiedzi ListDocuments.

Podaj go, aby pobrać kolejną stronę. Podczas dzielenia na strony wszystkie pozostałe parametry (z wyjątkiem page_size) muszą być zgodne z wartościami ustawionymi w żądaniu, które wygenerowało token strony.

order_by

string

Opcjonalnie. Opcjonalna kolejność zwracanych dokumentów.

Na przykład: priority desc, __name__ desc.

Powiela to pole ORDER BY używane w zapytaniach Firestore, ale w postaci ciągu. Gdy go nie ma, dokumenty są uporządkowane według: __name__ ASC.

mask

DocumentMask

Opcjonalnie. Pola do zwrócenia. Jeśli zasada nie jest skonfigurowana, zwraca wszystkie pola.

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

show_missing

bool

Czy na liście powinny być widoczne brakujące dokumenty.

Brakuje dokumentu, jeśli nie istnieje, ale znajdują się pod nim umieszczone dokumenty podrzędne. Jeśli ma wartość prawda, takie brakujące dokumenty są zwracane z kluczem, ale nie mają ustawionych pól oraz pól create_time ani update_time.

Żądania z show_missing nie mogą określać właściwoś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 mieć tylko jedną z tych wartości:
transaction

bytes

Wykonaj odczyt w ramach już aktywnej transakcji.

read_time

Timestamp

Wykonaj odczyt w podanym czasie.

Musi to być sygnatura czasowa z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

Odpowiedź ListDocumentsResponse

Odpowiedź dla: Firestore.ListDocuments.

Pola
documents[]

Document

Znalezione dokumenty.

next_page_token

string

Token umożliwiający pobranie następnej strony dokumentów.

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

Żądanie nasłuchiwania

Prośba dotycząca: Firestore.Listen

Pola
database

string

Wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

labels

map<string, string>

Etykiety powiązane z tą zmianą docelową.

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

Target

Cel do dodania do tego strumienia.

remove_target

int32

Identyfikator elementu docelowego do usunięcia z tego strumienia.

Odsłuchaj odpowiedź

Odpowiedź dla: Firestore.Listen.

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

TargetChange

Cele uległy zmianie.

document_change

DocumentChange

Element Document został zmieniony.

document_delete

DocumentDelete

Element Document został usunięty.

document_remove

DocumentRemove

Wymiar Document został usunięty z celu (ponieważ nie jest już z nim związany).

filter

ExistenceFilter

Filtr, który ma być stosowany 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.

Wartość mapy

Wartość mapy.

Pola
fields

map<string, Value>

Pola mapy.

Klawisze mapy reprezentują nazwy pól. Nazwy pól pasujące do wyrażenia regularnego __.*__ są zarezerwowane. Zarezerwowane nazwy pól są zabronione z wyjątkiem niektórych udokumentowanych kontekstów. Klucze mapy, zakodowane w formacie UTF-8, nie mogą przekraczać 1500 bajtów ani być puste.

Żądanie partycji

Prośba dotycząca usługi Firestore.PartitionQuery.

Pola
parent

string

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.

Na przykład można ustawić 1 mniej niż liczba równoległych zapytań do wykonania lub podczas uruchamiania zadania potoku danych wartość ta może być o 1 mniej niż liczba dostępnych instancji roboczych lub instancji obliczeniowych.

page_token

string

Wartość next_page_token zwrócona z poprzedniego wywołania PartitionQuery, która może zostać użyta do uzyskania dodatkowego zestawu wyników. Nie ma gwarancji kolejności między zestawami wyników. Dlatego korzystanie z wielu zbiorów wyników wymaga scalania 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 zestaw wyników uporządkowany według wyników zapytania dostarczonego w narzędziu PartitionQuery, musisz je scalać: 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 (podlega ona zasadom partition_count).

Na przykład jeśli partition_count = 10, a page_size = 8, pierwsze wywołanie PartitionQuery zwróci do 8 partycji, a next_page_token, jeśli istnieje ich więcej. Drugie wywołanie PartitionQuery zwróci maksymalnie 2 partycje, aby zakończyć ich łączną liczbę podaną w zasadzie partition_count.

Pole sumy query_type. Zapytanie do partycjonowania. query_type może mieć 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, granice, 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 mieć 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 z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

Odpowiedź na zapytanie partycji

Odpowiedź dla: 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 przy użyciu tego samego zapytania, które zostało dostarczone do tego żądania PartitionQuery. Kursory partycji zostaną uporządkowane w tej samej kolejności co wyniki zapytania dostarczonego do PartitionQuery.

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

  • zapytanie, koniec_od A
  • zapytanie, początek_od A, koniec_od B
  • zapytanie, zaczynając od B

Pusty wynik może oznaczać, że zapytanie zawiera zbyt mało wyników do partycjonowania lub że zapytanie nie jest jeszcze obsługiwane do partycjonowania.

next_page_token

string

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

Podsumowanie planu

Informacje o fazie planowania dla zapytania.

Pola
indexes_used[]

Struct

Indeksy wybrane dla zapytania. Na przykład: [ {"query_scope": "Collection", "properties": "(foo ASC, nazwa ASC)"}, {"query_scope": "Collection", "properties": "(bar ASC, nazwa ASC)"} ]

Warunek wstępny

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

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

bool

Gdy ustawiona jest 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 miał być ostatnio aktualizowany. Sygnatura czasowa musi być wyrównana w mikrosekundach.

Żądanie wycofania

Prośba dotycząca usługi Firestore.Rollback.

Pola
database

string

Wymagane. Nazwa bazy danych. W formacie: projects/{project_id}/databases/{database_id}.

transaction

bytes

Wymagane. Transakcja do wycofania.

Żądanie RunAggregationQueryRequest

Prośba dotycząca usługi Firestore.RunAggregationQuery.

Pola
parent

string

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 ustawione, zwracane są dodatkowe statystyki zapytań. W przeciwnym razie zwracane będą tylko wyniki zapytania.

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

StructuredAggregationQuery

Zapytanie agregujące.

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

bytes

Uruchom agregację w ramach już aktywnej transakcji.

Wartość w tym miejscu to nieprzejrzysty identyfikator transakcji, w której ma zostać wykonane zapytanie.

new_transaction

TransactionOptions

Uruchamia nową transakcję w ramach zapytania z domyślnym ustawieniem „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 z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

Odpowiedź na zapytanie RunAggregationQuery

Odpowiedź dla: Firestore.RunAggregationQuery.

Pola
result

AggregationResult

Jeden wynik agregacji.

Nie występuje w przypadku raportowania częściowego postępu.

transaction

bytes

Transakcja rozpoczęta w ramach tego żądania.

Widoczny tylko w pierwszej odpowiedzi, gdy żądanie dotyczyło rozpoczęcia nowej transakcji.

read_time

Timestamp

Godzina obliczenia wyniku zagregowanego. Ta wartość jest zawsze monotonicznie rosnąca. w tym przypadku poprzedni wynik AggregationResult w strumieniu wyników nie zmieni się między read_time a tym.

Jeśli zapytanie nie zwróci żadnych wyników, zostanie wysłana odpowiedź z parametrem read_time i brakiem result. Wskazuje ona czas uruchomienia zapytania.

explain_metrics

ExplainMetrics

Wskaźniki wyjaśnień zapytania. Ten parametr występuje tylko wtedy, gdy podano RunAggregationQueryRequest.explain_options i jest wysyłany tylko raz z ostatnią odpowiedzią w strumieniu.

RunQueryRequest

Prośba dotycząca usługi Firestore.RunQuery.

Pola
parent

string

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 ustawione, zwracane są dodatkowe statystyki zapytań. W przeciwnym razie zwracane będą tylko wyniki zapytania.

Pole sumy query_type. Zapytanie do uruchomienia. query_type może mieć 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 mieć tylko jedną z tych wartości:
transaction

bytes

Uruchom zapytanie w ramach już aktywnej transakcji.

Wartość w tym miejscu to nieprzejrzysty identyfikator transakcji, w której ma zostać wykonane zapytanie.

new_transaction

TransactionOptions

Rozpoczyna nową transakcję i odczytuje dokumenty. Domyślnie jest to transakcja 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 z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

RunQueryResponse

Odpowiedź dla: 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 ustawiono atrybut RunQueryRequest.new_transaction. Jeśli jest ustawione, w odpowiedzi nie zostaną ustawione żadne inne pola.

document

Document

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

read_time

Timestamp

Czas odczytu dokumentu. Może narastać monotonicznie. w takim przypadku poprzednie dokumenty w strumieniu wyników nie zostaną zmienione między dokumentem read_time a tym.

Jeśli zapytanie nie zwróci żadnych wyników, zostanie wysłana odpowiedź z parametrem read_time i brakiem document. Wskazuje ona czas uruchomienia zapytania.

skipped_results

int32

Liczba wyników, które zostały pominięte z powodu przesunięcia między ostatnią i bieżącą odpowiedzią.

explain_metrics

ExplainMetrics

Wskaźniki wyjaśnień zapytania. Ten parametr występuje tylko wtedy, gdy podano RunQueryRequest.explain_options i jest wysyłany tylko raz z ostatnią odpowiedzią w strumieniu.

Pole sumy continuation_selector. Tryb kontynuacji zapytania. Jeśli występuje, oznacza to, że bieżący strumień odpowiedzi na zapytanie został zakończony. Tę opcję można ustawić z użyciem parametru document lub bez niego, ale gdy jest ustawiony, nie są zwracane żadne więcej wyników. continuation_selector może mieć tylko jedną z tych wartości:
done

bool

Jeśli jest dostępny, Firestore zakończył wykonywanie żądania i żadne dokumenty nie będą zwracane.

Zapytanie agregacji uporządkowanych danych

Zapytanie Firestore dotyczące uruchomienia agregacji w zasobniku StructuredQuery.

Pola
aggregations[]

Aggregation

Opcjonalnie. Seria agregacji, które zostaną zastosowane do wyników funkcji structured_query.

Wymagane:

  • Od co najmniej 1 do 5 agregacji na zapytanie.
Pole sumy query_type. Podstawowe zapytanie do agregacji. query_type może mieć tylko jedną z tych wartości:
structured_query

StructuredQuery

Zagnieżdżone uporządkowane zapytanie.

Agregacja

Definiuje agregację, która skutkuje jednym wynikiem.

Pola
alias

string

Opcjonalnie. Opcjonalna nazwa pola, w którym mają być przechowywane wynik agregacji.

Jeśli nie zostanie podana, Firestore wybierze nazwę domyślną w formacie field_<incremental_id++>. 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.
  • Zachowaj zgodność z ograniczeniami document field name.
Pole sumy operator. Wymagany typ agregacji do wykonania. operator może mieć tylko jedną z tych wartości:
count

Count

Agregator liczb.

sum

Sum

Agregator sum.

avg

Avg

Przeciętny agregator.

Średnio

Średnia wartości żądanego pola.

  • Agregowane będą tylko wartości liczbowe. Wszystkie wartości nieliczbowe, w tym NULL, są pominięte.

  • Jeśli zagregowane wartości zawierają wartość NaN, funkcja zwraca NaN. Funkcja matematyki Infinity jest zgodna ze standardami IEEE-754.

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

  • Zawsze zwraca wynik w postaci liczby zmiennoprzecinkowej.

Pola
field

FieldReference

Pole do agregacji.

Liczba

Liczba dokumentów pasujących do zapytania.

Funkcja agregacji COUNT(*) działa w całym dokumencie, więc nie wymaga odwołania do pola.

Pola
up_to

Int64Value

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

Umożliwia to ustawienie górnej granicy liczby dokumentów do skanowania, co pozwala ograniczyć czas oczekiwania i koszty.

Wartość nieokreślona jest interpretowana jako brak zakresu.

Ogólny przykład:

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

Wymagane:

  • Wartość musi być większa od zera.

Suma

Suma wartości żądanego pola.

  • Agregowane będą tylko wartości liczbowe. Wszystkie wartości nieliczbowe, w tym NULL, są pominięte.

  • Jeśli zagregowane wartości zawierają wartość NaN, funkcja zwraca NaN. Funkcja matematyki Infinity jest zgodna ze standardami IEEE-754.

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

  • Zwraca 64-bitową liczbę całkowitą, jeśli wszystkie zagregowane liczby są liczbami całkowitymi, a wynik sumy nie przekroczy wartości. W przeciwnym razie wynik jest liczbą zmiennoprzecinkową. Nawet jeśli wszystkie zagregowane wartości są liczbami całkowitymi, wynik jest zwracany jako liczba zmiennoprzecinkowa, jeśli nie mieści się w 64-bitowej liczbie znaków ze znakiem. W takim przypadku zwracana wartość utraci precyzję.

  • Gdy występuje niedopełnienie, agregacja zmiennoprzecinkowa jest niedeterministyczna. Oznacza to, że wielokrotne wykonywanie tego samego zapytania bez zmian w wartościach może za każdym razem dawać nieco inne wyniki. W takich przypadkach wartości powinny być przechowywane w postaci liczb całkowitych zamiast liczb zmiennoprzecinkowych.

Pola
field

FieldReference

Pole do agregacji.

Zapytanie strukturalne

Zapytanie Firestore.

Etapy zapytania są wykonywane w tej 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 element DocumentMask nad dokumentami zwróconymi w wyniku zapytania. Gdy zasada jest nieskonfigurowana, zakładamy, że 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ść, która ma być stosowana do wyników zapytania.

Firestore umożliwia wywołującym użytkownikom określenie pełnego sortowania, częściowego sortowania lub całkowity brak zamówień. We wszystkich przypadkach Firestore gwarantuje stabilną kolejność na podstawie tych reguł:

  • Pole order_by jest wymagane, aby odwoływać się do wszystkich pól używanych z filtrem nierówności.
  • Wszystkie pola, które muszą znajdować się w elemencie order_by, ale jeszcze go nie występują, są objęte leksykograficzną kolejnością nazw pól.
  • Jeśli zamówienie z __name__ nie jest określone, jest dołączane domyślnie.

Pola są dodawane z tym samym kierunkiem sortowania co w przypadku ostatniego określonego porządku, czyli „ASCENDING” jeśli nie określono zamówienia. 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 ma się rozpoczynać zapytanie.

Kolejność w zbiorze wyników jest określana na podstawie klauzuli 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: (b ASC, __name__ ASC).

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

Wracając do powyższego przykładu, umieszczenie następujących kursorów początkowych będzie miało 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): rozpocznij zapytanie po a = 1 AND b > 10.

W przeciwieństwie do funkcji OFFSET, która wymaga skanowania pierwszych N wyników do pominięcia, kursor początkowy umożliwia rozpoczęcie zapytania w pozycji logicznej. To położenie nie musi odpowiadać rzeczywistemu wynikowi. Urządzenie przeskanuje od tej pozycji w celu znalezienia następnego dokumentu.

Wymagane:

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

Cursor

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

Jest to podobne do funkcji START_AT, ale kontroluje pozycję końcową, a nie pozycję początkową.

Wymagane:

  • Liczba wartości nie może być większa niż liczba pól określonych 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:

  • Wartość musi być większa niż lub równa 0, jeśli została określona.
limit

Int32Value

Maksymalna liczba wyników do zwrócenia.

Ma zastosowanie po wszystkich innych ograniczeniach.

Wymagane:

  • Wartość musi być większa niż lub równa 0, jeśli została określona.
find_nearest

FindNearest

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

Ma zastosowanie po wszystkich innych filtrach i kolejności.

Znajduje wektory dystrybucyjne najbliższe danemu wektorowi zapytania.

Selektor kolekcji

Wybór kolekcji, np. messages as m1.

Pola
collection_id

string

Identyfikator kolekcji. Jeśli jest ustawiony, wybiera tylko kolekcje o tym identyfikatorze.

all_descendants

bool

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

Filtr złożony

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

Pola
op

Operator

Operator łączący wiele filtrów.

filters[]

Filter

Lista filtrów do połączenia.

Wymagane:

  • 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 muszą spełniać warunki co najmniej 1 z połączonych filtrów.

Kierunek

Kierunek sortowania.

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

Filtr pól

Filtr określonego 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:

  • field na pierwszym miejscu w kategorii order_by.
LESS_THAN_OR_EQUAL

Podana wartość field jest mniejsza lub równa wartości podanej w kolumnie value.

Wymagane:

  • field na pierwszym miejscu w kategorii order_by.
GREATER_THAN

Podana wartość field jest większa niż wartość podana w polu value.

Wymagane:

  • field na pierwszym miejscu w kategorii order_by.
GREATER_THAN_OR_EQUAL

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

Wymagane:

  • field na pierwszym miejscu w kategorii order_by.
EQUAL Podana wartość field jest równa wartości podanej jako value.
NOT_EQUAL

Podana wartość field nie jest równa wartości podanej w atrybucie value.

Wymagane:

  • Brak innych elementów NOT_EQUAL, NOT_IN, IS_NOT_NULL i IS_NOT_NAN.
  • To field jest na pierwszym miejscu w kategorii order_by.
ARRAY_CONTAINS Podana wartość field jest tablicą, która zawiera podaną wartość value.
IN

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

Wymagane:

  • Pole value nie jest puste (ArrayValue) podlega limitom rozłączenia.
  • W tym samym zapytaniu nie ma filtrów NOT_IN.
ARRAY_CONTAINS_ANY

Podana tablica field jest tablicą, która zawiera dowolną z wartości w danej tablicy.

Wymagane:

  • Pole value nie jest puste (ArrayValue) podlega limitom rozłączenia.
  • W tym samym rozdzieleniu nie ma innych filtrów ARRAY_CONTAINS_ANY.
  • W tym samym zapytaniu nie ma filtrów NOT_IN.
NOT_IN

Wartości funkcji field nie ma w podanej tablicy.

Wymagane:

  • Ten element value nie jest pusty ArrayValuezawiera maksymalnie 10 wartości.
  • Brak innych elementów OR, IN, ARRAY_CONTAINS_ANY, NOT_IN, NOT_EQUAL, IS_NOT_NULL ani IS_NOT_NAN.
  • To field jest na pierwszym miejscu 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 segmentów rozdzielonych kropką (.), gdzie każdy segment jest zgodny z ograniczeniami document field name.

Filtr

Filtr.

Pola
Pole sumy filter_type. Typ filtra. filter_type może mieć 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.

Najbliższe

Konfiguracja wyszukiwania najbliższych sąsiadów.

Pola
vector_field

FieldReference

Wymagane. Zindeksowane pole wektora do wyszukania. Zwracane mogą być tylko dokumenty zawierające wektory, których wymiarowość pasuje do parametru query_vector.

query_vector

Value

Wymagane. Wektor zapytania, którego szukamy. Musi być wektorem o maksymalnie 2048 wymiarach.

distance_measure

DistanceMeasure

Wymagane. Miara odległości do użycia, wymagana.

limit

Int32Value

Wymagane. Liczba najbliższych sąsiadów do zwrócenia. Wartość musi być dodatnią liczbą całkowitą nie większą niż 1000.

Odległość

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. Więcej informacji: euklidesowa.
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 parametru DOT_PRODUCT z wektorami znormalizowanymi jednostkami zamiast odległości COSINE, co jest odpowiednikiem matematycznym o większej wydajności. Więcej informacji znajdziesz w sekcji Podobieństwo cosinusowe.
DOT_PRODUCT Podobny do cosinusa, ale zależy od wielkości wektorów. Więcej informacji znajdziesz w artykule Produkt skalarny.

Zamówienie

Kolejność na polu.

Pola
field

FieldReference

Pole, według którego ma być ustalana kolejność.

direction

Direction

Kierunek sortowania. Domyślna wartość to ASCENDING.

Odwzorowanie

Odwzorowanie pól dokumentu do zwrócenia.

Pola
fields[]

FieldReference

Pola do zwrócenia.

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

Filtr jednoargumentowy

Filtr z jednym operandem.

Pola
op

Operator

Jednoargumentowy operator do zastosowania.

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

FieldReference

Pole, do którego ma zostać zastosowany 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:

  • Brak innych elementów NOT_EQUAL, NOT_IN, IS_NOT_NULL i IS_NOT_NAN.
  • To field jest na pierwszym miejscu w kategorii order_by.
IS_NOT_NULL

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

Wymagane:

  • Pojedynczy element NOT_EQUAL, NOT_IN, IS_NOT_NULL lub IS_NOT_NAN.
  • To field jest na pierwszym miejscu w kategorii order_by.

Cel

Specyfikacja zestawu dokumentów do odsłuchania.

Pola
target_id

int32

Identyfikator elementu docelowego, który określa obiekt docelowy w strumieniu. Musi być liczbą dodatnią i inną niż zero.

Jeśli target_id ma wartość 0 (lub jest nieokreślona), serwer przypisuje identyfikator do tego celu i zwraca go w zdarzeniu TargetChange::ADD. Po dodaniu celu z target_id=0 wszystkie kolejne muszą mieć target_id=0. Jeśli po dodaniu elementu docelowego z atrybutem target_id=0 do serwera zostanie wysłane żądanie AddTarget z identyfikatorem 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 zwróconych w TargetChage.target_ids jest niezdefiniowana. Dlatego klienty powinny podawać identyfikator docelowy, zamiast polegać na tym, że przypisuje on identyfikator przez serwer.

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

once

bool

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

expected_count

Int32Value

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

Ta wartość ma znaczenie tylko wtedy, gdy podano resume_type. Jeśli ta wartość występuje i jest większa niż 0, wskazuje, że klient chce, aby w odpowiedzi znalazła się wartość ExistenceFilter.unchanged_names.

Pole sumy target_type. Typ elementu docelowego do odsłuchania. target_type może mieć tylko jedną z tych wartości:
query

QueryTarget

Cel określony przez zapytanie.

documents

DocumentsTarget

Cel określony przez zestaw 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 będą zwracane przed wprowadzeniem kolejnych zmian. resume_type może mieć tylko jedną z tych wartości:

resume_token

bytes

Token wznowienia z poprzedniego TargetChange dla identycznego miejsca docelowego.

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

read_time

Timestamp

Zacznij słuchać po określonym read_time.

W tej chwili klient musi znać stan pasujących dokumentów.

Cel dokumentów

Miejsce docelowe określone przez zestaw nazw dokumentów.

Pola
documents[]

string

Nazwy dokumentów do pobrania. W formacie: projects/{project_id}/databases/{database_id}/documents/{document_path}. Żądanie zakończy się niepowodzeniem, jeśli żaden z dokumentów nie jest zasobem podrzędnym danego elementu database. Zduplikowane nazwy zostaną usunięte.

Cel zapytania

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 uruchomienia. query_type może mieć tylko jedną z tych wartości:
structured_query

StructuredQuery

Uporządkowane zapytanie.

Docelowa zmiana

Obserwowane cele uległy zmianie.

Pola
target_change_type

TargetChangeType

Typ zmiany, która wystąpiła.

target_ids[]

int32

Identyfikatory celów, które uległy zmianie.

Jeśli pole będzie 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órego można użyć do wznowienia strumienia dla danej target_ids lub wszystkich środowisk docelowych, jeśli pole target_ids jest puste.

Nie jest ustawiany przy każdej zmianie wartości docelowej.

read_time

Timestamp

Spójna wartość read_time dla danego pola target_ids (pominięta, gdy identyfikatory target_id nie mają spójnego obrazu).

Strumień gwarantuje, że za każdym razem, gdy cały strumień uzyska nowy spójny zrzut, wyśle żądanie read_time z pustą wartością target_ids. Wiadomości ADD, CURRENT i RESET gwarantują (ostatecznie) utworzenie nowego spójnego podsumowania (nie dotyczy to wiadomości NO_CHANGE i REMOVE).

W przypadku danego strumienia read_time będzie monotonicznie rosnąca.

Typ zmiany docelowej

rodzaj zmiany.

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

Wartości docelowe odzwierciedlają wszystkie zmiany zatwierdzone przed dodaniem celów do transmisji.

Zostanie on wysłany po czasie dodania celów lub razem z nim (read_time).

Detektory mogą zaczekać na tę zmianę, jeśli wymagana jest semantyka odczyt po zapisie.

RESET

Cele zostały zresetowane, a w kolejnych zmianach zwracany jest dla nich nowy stan początkowy.

Po zakończeniu stanu początkowego parametr CURRENT zostanie zwrócony, nawet jeśli wartość docelowa była wcześniej określona jako CURRENT.

Opcje transakcji

Opcje tworzenia nowej transakcji.

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

ReadOnly

Tej transakcji można używać tylko do operacji odczytu.

read_write

ReadWrite

Transakcje można używać w operacjach odczytu i zapisu.

Tylko do odczytu

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 mieć tylko jedną z tych wartości:
read_time

Timestamp

Odczytuje dokumenty w określonym czasie.

Musi to być sygnatura czasowa z dokładnością do mikrosekundy z ostatniej godziny. Jeśli odzyskiwanie do określonego momentu jest włączone, może to być dodatkowo pełna sygnatura czasowa z ostatnich 7 dni.

Odczyt/zapis

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

Firestore nie zezwala na tworzenie żądań uwierzytelniania do odczytu i zapisu. transakcji.

Pola
retry_transaction

bytes

Opcjonalna transakcja do ponowienia.

Żądanie UpdateDocumentRequest

Prośba dotycząca usługi Firestore.UpdateDocument.

Pola
document

Document

Wymagane. Zaktualizowany dokument. Tworzy dokument, jeśli jeszcze nie istnieje.

update_mask

DocumentMask

Pola do zaktualizowania. Żadna ze ścieżek pól w masce nie może zawierać zarezerwowanej nazwy.

Jeśli dokument znajduje się na serwerze, a jego pola nie zawierają odniesień w masce, pozostaną one niezmienione. Pola, do których odwołuje się maska, ale nie ma ich w dokumencie wejściowym, są usuwane z dokumentu na serwerze.

mask

DocumentMask

Pola do zwrócenia. Jeśli zasada nie jest skonfigurowana, zwraca wszystkie pola.

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

current_document

Precondition

Opcjonalny warunek wstępny dotyczący dokumentu. Jeśli ta wartość zostanie ustawiona, a dokument docelowy nie spełni tego żądania, żądanie zakończy się niepowodzeniem.

Wartość

Komunikat, który może zawierać dowolne obsługiwane typy wartości.

Pola
Pole sumy value_type. Musisz ustawić wartość. value_type może mieć tylko jedną z tych wartości:
null_value

NullValue

Wartość null.

boolean_value

bool

Wartość logiczna.

integer_value

int64

Wartość całkowita.

double_value

double

Wartość podwójnej precyzji.

timestamp_value

Timestamp

Wartość sygnatury czasowej.

Dokładny tylko z dokładnością do mikrosekund. Zapisana dodatkowa precyzja jest zaokrąglana w dół.

string_value

string

Wartość ciągu znaków.

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

bytes_value

bytes

Wartość w bajtach.

Maksymalny rozmiar to 1 MiB–89 bajtów. Zapytania uwzględniają tylko pierwsze 1500 bajtów.

reference_value

string

Odwołanie do dokumentu. Na przykład: projects/{project_id}/databases/{database_id}/documents/{document_path}.

geo_point_value

LatLng

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

array_value

ArrayValue

Wartość tablicowa.

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

map_value

MapValue

Wartość mapy.

Zapis

Zapis w dokumencie.

Pola
update_mask

DocumentMask

Pola do zaktualizowania w tym zapisie.

To pole można ustawić 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 w dokumencie na serwerze są pola, które nie są zasłonięte maską, pozostają one niezmienione. Pola, do których odwołuje się maska, ale nie ma ich 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 ustawić tylko wtedy, gdy operacja to update. Jeśli ten zapis jest używany, odpowiada wykonaniu funkcji update i transform w przypadku tego samego dokumentu atomowo i w określonej kolejności.

current_document

Precondition

Opcjonalny warunek wstępny dotyczący dokumentu.

Jeśli ta wartość jest ustawiona, a dokument docelowy nie spełnia tego warunku, zapis się nie uda.

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

Document

Dokument do pisania.

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.

Żądanie zapisu

Prośba dotycząca usługi Firestore.Write.

Pierwsze żądanie tworzy strumień lub wznawia istniejący strumień za pomocą tokena.

Podczas tworzenia nowego strumienia serwer odpowiada, wysyłając odpowiedź zawierającą tylko identyfikator i token do wykorzystania w następnym żądaniu.

W trakcie wznawiania strumienia serwer najpierw przesyła strumieniowo odpowiedzi później niż podany przez Ciebie token, a potem odpowiedź zawierającą tylko aktualny token do wykorzystania w kolejnym żądaniu.

Pola
database

string

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

stream_id

string

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

writes[]

Write

Zapisy, które mają zostać zastosowane.

Zawsze wykonywany atomowo i w określonej kolejności. To pole musi być puste w pierwszym żądaniu. To pole może być puste w ostatnim żądaniu. To pole nie może być puste w przypadku wszystkich innych żą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 przez siebie zasobu WriteResponse. Jest to potwierdzenie, że klient otrzymał odpowiedzi aż do tego tokena. Po wysłaniu tego tokena wcześniejsze tokeny nie mogą być już używane.

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

Pozostaw to pole nieskonfigurowane podczas tworzenia nowego strumienia. Aby wznowić strumieniowanie w określonym momencie, ustaw to pole oraz pole stream_id.

Pozostaw to pole nieskonfigurowane podczas tworzenia nowego strumienia.

labels

map<string, string>

Etykiety powiązane z tym żądaniem zapisu.

Odpowiedź do zapisu

Odpowiedź dla: Firestore.Write.

Pola
stream_id

string

Identyfikator strumienia. Ustawienie tylko dla pierwszej wiadomości po utworzeniu nowego strumienia.

stream_token

bytes

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

To pole jest zawsze ustawione.

write_results[]

WriteResult

Wynik zastosowania zapisów.

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

commit_time

Timestamp

Czas realizacji zatwierdzenia. Każdy odczyt o wartości read_time lub większej jest gwarantowany, aby zobaczyć efekty zapisu.

Zapis wyniku

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, to jest to poprzedni czas aktualizacji.

transform_results[]

Value

Wyniki zastosowania wszystkich elementów typu DocumentTransform.FieldTransform w tej samej kolejności.