Referência de propriedade da entidade

O Firestore no modo Datastore (Datastore) é compatível com vários tipos de dados para valores de propriedade. Estes são alguns deles:

  • Números inteiros
  • Números de ponto flutuante
  • Strings
  • Datas
  • dados binários

Para uma lista completa de tipos, consulte Propriedades e tipos de valor.

Propriedades e tipos de valores

Os valores de dados associados a uma entidade consistem em uma ou mais propriedades. Cada propriedade tem um nome e um ou mais valores. Uma propriedade pode ter valores de mais de um tipo, e duas entidades podem ter valores de tipos diferentes para a mesma propriedade. As propriedades podem ser indexadas ou não (consultas que ordenam ou filtram com base em uma propriedade P ignoram entidades em que P não seja indexada). Uma entidade pode ter no máximo 20.000 propriedades indexadas.

Estes são os tipos de valor compatíveis:

Tipo de valor Tipo(s) do Go Ordem de classificação Observações
Número inteiro int
int8
int16
int32
int64
Numérico Número inteiro de 64 bits, assinado
Número de ponto flutuante float32
float64
Numérico Precisão dupla de 64 bits,
IEEE 754
Booleanos bool false<true
String (curta) string Unicode
Até 1500 bytes
String (longa) string (com noindex) Nenhum Até 1 megabyte

Não indexado
Fatia de bytes (curta) datastore.ByteString Ordem de bytes Até 1500 bytes
Fatia de bytes (longa) []byte Nenhum Até 1 megabyte

Não indexado
Data e hora time.Time Cronológica
Ponto geográfico appengine.GeoPoint Por latitude,
e depois longitude
Chave do Datastore *datastore.Key Por elementos do caminho
(tipo, identificador,
tipo, identificador...)
Chave Blobstore appengine.BlobKey Ordem de bytes

Você também pode usar um struct ou slice para agregar propriedades. Consulte a referência do Datastore para mais detalhes.

Quando uma consulta envolve um campo com valores de tipos mistos, o Firestore usa uma ordem determinista com base nas representações internas:

  1. Valores nulos
  2. Números de ponto fixo
    • Números inteiros
    • datas e horas
  3. Valores booleanos
  4. Sequências de bytes
    • fatias de bytes (curtas)
    • string Unicode
    • Chaves do Blobstore
  5. Números de ponto flutuante
  6. pontos geográficos
  7. Chaves do armazenamento de dados

Como as fatias de bytes e as strings longas não são indexadas, elas não têm ordem definida.