Check out what’s new from Firebase at Google I/O 2022. Learn more

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 anche l'ordinamento utilizzato quando si confrontano valori dello stesso tipo:

Tipo di dati Ordinamento Appunti
Vettore Per valori degli elementi

Una matrice non può contenere un altro valore di matrice come uno dei suoi elementi.

All'interno di una matrice, 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 ogni array. Se i primi elementi sono uguali, i secondi elementi vengono confrontati e così via fino a trovare una differenza. Se un array esaurisce gli elementi da confrontare ma è uguale fino a quel punto, l'array più corto viene ordinato prima dell'array 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 è di lunghezza inferiore.

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; ogni ulteriore precisione viene arrotondata per difetto.
Numero in virgola mobile Numerico Doppia precisione a 64 bit, IEEE 754.
Punto geografico Per latitudine, quindi longitudine Al momento non è consigliabile utilizzare questo tipo di dati a causa dei limiti di query. In genere è meglio memorizzare latitudine e longitudine come campi numerici separati. Se la tua app necessita di semplici geoquery basate sulla distanza, consulta Geoquery
Numero intero Numerico 64 bit, firmato
Carta geografica Per chiavi, poi per valore

Rappresenta un oggetto incorporato in un documento. Una volta indicizzato, è possibile eseguire query sui sottocampi. Se si esclude questo valore dall'indicizzazione, anche tutti i sottocampi vengono esclusi dall'indicizzazione.

L'ordine 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 chiave-valore sono uguali, vengono confrontate le successive coppie chiave-valore 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"}

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 interi ea virgola mobile, ordinati in ordine numerico
  4. Valori di data
  5. Valori di stringa di testo
  6. Valori di byte
  7. Riferimenti di Cloud Firestore
  8. Valori in punti geografici
  9. Valori di matrice
  10. Valori della mappa