了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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 di 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 ogni array. Se i primi elementi sono uguali, vengono confrontati i secondi elementi e così via finché non viene trovata 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 più grande. L'array [1, 2, 3] ha elementi uguali ai primi tre elementi di [1, 2, 3, 1] ma ha una 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; qualsiasi 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 delle limitazioni delle query. In genere è preferibile memorizzare la latitudine e la longitudine come campi numerici separati. Se la tua app necessita di geoquery semplici basate sulla distanza, vedi Query geografiche
Numero intero Numerico 64 bit, firmato
Carta geografica Per chiavi, quindi per valore

Rappresenta un oggetto incorporato in un documento. Una volta indicizzato, puoi interrogare i sottocampi. Se si esclude questo valore dall'indicizzazione, anche tutti i sottocampi vengono 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 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"}

NaN Nessuno
Nullo Nessuno
Riferimento Per elementi di 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 in virgola mobile, ordinati in ordine numerico
  5. Valori data
  6. Valori stringa di testo
  7. Valori in byte
  8. Riferimenti a Cloud Firestore
  9. Valori dei punti geografici
  10. Valori di matrice
  11. Valori della mappa