Unterstützte Datentypen

Auf dieser Seite werden die Datentypen beschrieben, die Firestore unterstützt.

Datentypen

In der folgenden Tabelle sind die von Firestore unterstützten Datentypen aufgeführt. Außerdem wird die Sortierfolge für den Vergleich von Werten desselben Typs beschrieben:

Datentyp Sortierfolge Hinweise
Matrix Nach Elementwerten

Ein Array darf keinen anderen Arraywert als Element enthalten.

In einem Array wird den Elementen die Position zugewiesen, die ihnen zugewiesen ist. Wenn Sie zwei oder mehr Arrays sortieren, werden Arrays anhand ihrer Elementwerte sortiert.

Beim Vergleich von zwei Arrays werden die ersten Elemente jedes Arrays verglichen. Wenn die ersten Elemente gleich sind, werden die zweiten Elemente verglichen und so weiter, bis eine Differenz gefunden wird. Wenn in einem Array keine zu vergleichenden Elemente vorhanden sind, aber bis zu diesem Zeitpunkt gleich ist, wird das kürzere Array vor dem längeren Array geordnet.

Beispiel: [1, 2, 3] < [1, 2, 3, 1] < [2] Das Array [2] hat den größten Wert für das erste Element. Das Array [1, 2, 3] enthält Elemente, die den ersten drei Elementen von [1, 2, 3, 1] entsprechen, ist jedoch kürzer.

Boolesch false < true
Byte Bytereihenfolge Bis zu 1.048.487 Byte (1 MiB – 89 Byte). Nur die ersten 1.500 Byte werden von Abfragen berücksichtigt.
Datum und Uhrzeit Chronologisch Bei der Speicherung in Firestore nur in Mikrosekunden. Jede zusätzliche Genauigkeit wird abgerundet.
Gleitkommazahl Numerischer Wert 64-Bit mit doppelter Genauigkeit, IEEE 754
Geografischer Punkt Nach Breitengrad, dann nach Längengrad Aufgrund von Abfragebeschränkungen empfehlen wir diesen Datentyp derzeit nicht. Im Allgemeinen ist es besser, Breiten- und Längengrade als separate numerische Felder zu speichern. Wenn Ihre App einfache Entfernungs-basierte Geoabfragen benötigt, finden Sie unter Geo-Abfragen weitere Informationen.
Ganzzahl Numerischer Wert 64-Bit, signiert
Karte Nach Schlüsseln, dann nach Wert

Stellt ein in einem Dokument eingebettetes Objekt dar. Nach der Indexierung können Sie untergeordnete Felder abfragen. Wenn Sie diesen Wert aus der Indexierung ausschließen, werden alle Unterfelder ebenfalls von der Indexierung ausgeschlossen.

Die Reihenfolge der Schlüssel ist immer sortiert. Wenn Sie beispielsweise {c: "foo", a: "bar", b: "qux"} schreiben, wird die Karte nach Schlüsseln sortiert und als {a: "bar", b: "qux", c: "foo"} gespeichert.

Die Zuordnungsfelder sind nach Schlüsseln sortiert und nach Schlüssel/Wert-Paaren verglichen, wobei zuerst die Schlüssel und dann die Werte verglichen werden. Wenn die ersten Schlüssel/Wert-Paare gleich sind, werden die nächsten Schlüssel/Wert-Paare verglichen und so weiter. Wenn zwei Zuordnungen mit denselben Schlüssel/Wert-Paaren beginnen, wird die Kartenlänge berücksichtigt. Die folgenden Karten sind beispielsweise in aufsteigender Reihenfolge aufgeführt:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

Null Keine Angabe
Nachschlagen Nach Pfadelementen (Sammlung, Dokument-ID, Sammlung, Dokument-ID...) Beispiel: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
Text string UTF-8-codierte Bytereihenfolge Bis zu 1.048.487 Byte (1 MiB – 89 Byte). Nur die ersten 1.500 Byte der UTF-8-Darstellung werden von Abfragen berücksichtigt.

Werttypsortierung

Wenn eine Abfrage ein Feld mit Werten gemischter Typen umfasst, verwendet Firestore eine deterministische Reihenfolge anhand der internen Darstellungen. Die folgende Liste zeigt die Reihenfolge:

  1. Nullwerte
  2. Boolesche Werte
  3. Ganzzahl- und Gleitkommawerte, in numerischer Reihenfolge sortiert
  4. Datumswerte
  5. Textstringwerte
  6. Bytewerte
  7. Firestore-Referenzen
  8. Geografische Punktwerte
  9. Arraywerte
  10. Zuordnungswerte