Tipi di dati supportati

Questa pagina descrive i tipi di dati supportati da Cloud Firestore.

Tipi di dati

La tabella seguente elenca i tipi di dati supportati da Cloud Firestore. Descrive inoltre l'ordinamento utilizzato quando si confrontano valori dello stesso tipo:

Tipo di dati Ordinamento Appunti
Vettore Per valori degli elementi

Un array non può contenere un altro valore di array come uno dei suoi elementi.

All'interno di un array gli elementi mantengono la posizione loro assegnata. Quando si ordinano due o più array, gli array vengono ordinati in base ai valori degli elementi.

Quando si confrontano due array, vengono confrontati i primi elementi di ciascun array. Se i primi elementi sono uguali, si confrontano i secondi e così via finché non si trova una differenza. Se un array esaurisce gli elementi da confrontare ma è uguale fino a quel punto, l'array più corto viene ordinato prima di quello più lungo.

Ad esempio, [1, 2, 3] < [1, 2, 3, 1] < [2] . L'array [2] ha il valore del primo elemento maggiore. L'array [1, 2, 3] ha elementi uguali ai primi tre elementi di [1, 2, 3, 1] ma è più corto in lunghezza.

Booleano false < true
Byte Ordine dei byte Fino a 1.048.487 byte (1 MiB - 89 byte). Solo i primi 1.500 byte vengono considerati dalle query.
Data e ora Cronologico Se archiviato in Cloud Firestore, preciso solo al microsecondo; qualsiasi precisione aggiuntiva viene arrotondata per difetto.
Numero in virgola mobile Numerico Doppia precisione a 64 bit, IEEE 754 .
Punto geografico Per latitudine, poi longitudine Al momento non consigliamo di utilizzare questo tipo di dati a causa delle limitazioni nelle query. In genere è meglio memorizzare latitudine e longitudine come campi numerici separati. Se la tua app necessita di semplici geoquery basate sulla distanza, vedi Geoquery
Numero intero Numerico 64 bit, firmato
Carta geografica Per chiavi, quindi per valore

Rappresenta un oggetto incorporato in un documento. Una volta indicizzato, puoi eseguire query sui sottocampi. Se escludi questo valore dall'indicizzazione, anche tutti i sottocampi verranno esclusi dall'indicizzazione.

L'ordinamento delle chiavi è sempre ordinato. Ad esempio, se scrivi {c: "foo", a: "bar", b: "qux"} la mappa viene ordinata per chiave e salvata come {a: "bar", b: "qux", c: "foo"} .

I campi della mappa vengono ordinati per chiave e confrontati per coppie chiave-valore, confrontando prima le chiavi e poi i valori. Se le prime coppie di valori-chiave sono uguali, vengono confrontate le coppie di valori-chiave successive e così via. Se due mappe iniziano con le stesse coppie chiave-valore, viene considerata la lunghezza della mappa. Ad esempio, le seguenti mappe sono in ordine crescente:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

NaN Nessuno
Nullo Nessuno
Riferimento Per elementi del percorso (raccolta, ID documento, raccolta, ID documento...) Ad esempio, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
Stringa di testo Ordine dei byte con codifica UTF-8 Fino a 1.048.487 byte (1 MiB - 89 byte). Solo i primi 1.500 byte della rappresentazione UTF-8 vengono considerati dalle query.

Ordinamento del tipo di valore

Quando una query coinvolge un campo con valori di tipi misti, Cloud Firestore utilizza un ordinamento deterministico basato sulle rappresentazioni interne. L'elenco seguente mostra l'ordine:

  1. Valori nulli
  2. Valori booleani
  3. Valori NaN
  4. Valori interi e a virgola mobile, ordinati in ordine numerico
  5. Valori della data
  6. Valori della stringa di testo
  7. Valori in byte
  8. Riferimenti Cloud Firestore
  9. Valori di punti geografici
  10. Valori della matrice
  11. Valori della mappa