Tipi di dati supportati
In questa pagina vengono descritti i tipi di dati supportati da Firestore.
Tipi di dati
Nella tabella seguente sono elencati i tipi di dati supportati da Firestore. Descrive anche l'ordinamento utilizzato per il confronto di valori dello stesso tipo:
Tipo di dati | Ordinamento | Note |
---|---|---|
Array | In base ai 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, questi vengono ordinati in base ai valori degli elementi.
Quando confronti due array, vengono confrontati i primi elementi di ogni array. Se i primi elementi sono uguali, i secondi vengono confrontati e così via fino a quando non viene rilevata una differenza. Se un array esaurisce gli elementi da confrontare, ma è uguale fino a quel punto, l'array più breve viene ordinato prima dell'array più lungo. Ad esempio, |
Booleano | false < true |
— |
Byte | Ordine byte | Fino a 1.048.487 byte (1 MiB - 89 byte). Solo i primi 1500 byte vengono presi in considerazione dalle query. |
Data e ora | Cronologica | Se archiviata in Firestore, l'accuratezza è in pochi microsecondi; l'eventuale precisione aggiuntiva viene arrotondata per difetto. |
Numero con virgola mobile | Numerico | Precisione doppia a 64 bit, IEEE 754. |
Punto geografico | Per latitudine, poi longitudine | Al momento sconsigliamo di utilizzare questo tipo di dati a causa di limitazioni delle query. In genere è preferibile memorizzare la latitudine e la longitudine come campi numerici separati. Se la tua app ha bisogno di semplici geoquery basate sulla distanza, consulta Query geografiche. |
Numero intero | Numerico | 64 bit, con firma |
Mappa | Per chiavi, poi per valore | Rappresenta un oggetto incorporato in un documento. Una volta eseguita l'indicizzazione, puoi eseguire query sui campi secondari. Se escludi questo valore dall'indicizzazione, anche tutti i sottocampi vengono esclusi dall'indicizzazione.
L'ordinamento delle chiavi è sempre ordinato. Ad esempio, se scrivi I campi della mappa vengono ordinati per chiave e confrontati per coppie chiave-valore, prima confrontando 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 hanno tutte le stesse coppie chiave-valore, viene considerata la lunghezza della mappa. Ad esempio, le mappe seguenti sono in ordine crescente:
|
NaN | Nessuna | — |
Null | Nessuna | — |
Riferimento | In base agli 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 1500 byte della rappresentazione UTF-8 vengono considerati dalle query. |
Vettoriale | Per dimensione e poi per singoli valori degli elementi | La dimensione di incorporamento massima supportata è 2048. Per archiviare vettori con dimensioni più grandi, utilizza la riduzione di dimensionamento. |
Ordine del tipo di valore
Quando una query riguarda un campo con valori di tipi misti, Firestore utilizza un ordinamento deterministico basato sulle rappresentazioni interne. Il seguente elenco mostra l'ordine:
- Valori null
- Valori booleani
- Valori NAN
- Valori interi e in virgola mobile, ordinati in ordine numerico
- Valori delle date
- Valori stringa di testo
- Valori byte
- Riferimenti Firestore
- Valori in punti geografici
- Valori array
- Incorporamenti vettoriali
- Mappa valori