Tipi di dati supportati
Questa pagina descrive i tipi di dati supportati da Firestore.
Tipi di dati
La seguente tabella elenca i tipi di dati supportati da Firestore. Inoltre, descrive l'ordine di ordinamento utilizzato per confrontare valori dello stesso tipo:
Tipo di dati | Ordinamento | Note |
---|---|---|
Array | Per valori elemento |
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 assegnata. Quando ordini due o più array, questi vengono ordinati in base ai valori dei relativi elementi.
Quando si confrontano due array, vengono confrontati i primi elementi di ciascun array. Se i primi elementi sono uguali, vengono confrontati i secondi elementi e così via fino a quando non viene trovata 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 dei byte | Fino a 1.048.487 byte (1 MiB - 89 byte). Solo i primi 1500 byte vengono considerati dalle query. |
Data e ora | Cronologica | Se archiviati in Firestore, sono precisi solo ai microsecondi; qualsiasi precisione aggiuntiva viene arrotondata per difetto. |
Numero in virgola mobile | Numerico | Precisione doppia a 64 bit, IEEE 754. |
Punto geografico | Per latitudine e poi per longitudine | Al momento sconsigliamo di utilizzare questo tipo di dati a causa di limitazioni nelle query. In genere è meglio memorizzare la latitudine e la longitudine come campi numerici separati. Se la tua app ha bisogno di semplici query geografiche basate sulla distanza, consulta Query geografiche |
Numero intero | Numerico | 64 bit, firmato |
Mappa | Per chiavi, quindi per valore | Rappresenta un oggetto incorporato in un documento. Una volta indicizzati, puoi eseguire query sui campi secondari. Se escludi questo valore dall'indicizzazione, anche tutti i campi secondari vengono esclusi dall'indicizzazione.
L'ordinamento delle chiavi è sempre in ordine. Ad esempio, se scrivi
I campi mappa vengono ordinati per chiave e confrontati in base a coppie chiave-valore, prima le chiavi e poi i valori. Se le prime coppie chiave-valore sono uguali, vengono confrontate le coppie chiave-valore successive e così via. Se due mappe hanno tutte le stesse coppie chiave-valore, viene considerata la lunghezza della mappa. Ad esempio, le seguenti mappe sono in ordine crescente:
|
NaN | Nessuno | — |
Null | Nessuno | — |
Riferimento | Per elementi del percorso (raccolta, ID documento, raccolta, ID documento e così via) | Ad esempio,
projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] . |
Stringa di testo | Ordine di byte codificato UTF-8 | Fino a 1.048.487 byte (1 MiB - 89 byte). Le query prendono in considerazione solo i primi 1500 byte della rappresentazione UTF-8. |
Vettoriale | Per dimensione e poi per valori dei singoli elementi | La dimensione massima dell'embedding supportata è 2048. Per memorizzare vettori con dimensioni maggiori, utilizza la riduzione della dimensionalità. |
Ordinamento dei tipi di valore
Quando una query coinvolge un campo con valori di tipi misti, Firestore utilizza un ordinamento deterministico in base alle rappresentazioni interne. L'elenco seguente mostra l'ordine:
- Valori null
- Valori booleani
- Valori NaN
- Valori interi e con virgola mobile, ordinati in ordine numerico
- Valori data
- Valori di stringhe di testo
- Valori in byte
- Riferimenti a Firestore
- Valori in punti geografici
- Valori di array
- Incorporamenti vettoriali
- Valori mappa