Questa pagina descrive i tipi di dati supportati da Cloud Firestore.
Tipi di dati
Nella tabella seguente sono elencati i tipi di dati supportati da Cloud 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 loro assegnata. Quando ordini due o più matrici, queste vengono ordinate 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, i secondi elementi vengono confrontati 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 memorizzato in Cloud Firestore, è preciso solo ai microsecondi. Eventuale precisióne 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, ti sconsigliamo di utilizzare questo tipo di dati a causa di limitazioni relative alle 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. Se indicizzati, puoi eseguire query su 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 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 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). Solo i primi 1500 byte della representation UTF-8 vengono presi in considerazione dalle query. |
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, Cloud 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 in virgola mobile, ordinati in ordine numerico
- Valori data
- Valori di stringhe di testo
- Valori in byte
- Cloud Firestore riferimenti
- Valori in punti geografici
- Valori array
- Incorporamenti vettoriali
- Valori mappa