Firebase Summit のすべての発表内容に目を通し、Firebase を活用してアプリ開発を加速し、自信を持ってアプリを実行できる方法をご確認ください。 詳細

サポートされているデータ型

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このページでは、Cloud Firestore がサポートするデータ型について説明します。

データ型

次の表に、Cloud Firestore でサポートされているデータ型を示します。また、同じ型の値を比較するときに使用される並べ替え順序についても説明します。

データ・タイプソート順ノート
配列要素値による

配列には、その要素の 1 つとして別の配列値を含めることはできません。

配列内では、要素は割り当てられた位置を維持します。 2 つ以上の配列を並べ替える場合、配列は要素の値に基づいて並べ替えられます。

2 つの配列を比較する場合、各配列の最初の要素が比較されます。最初の要素が等しい場合は、2 番目の要素が比較され、違いが見つかるまで繰り返されます。配列が比較する要素を使い果たしたが、その時点までは等しい場合、短い方の配列が長い方の配列の前に並べられます。

たとえば、 [1, 2, 3] < [1, 2, 3, 1] < [2]です。配列[2]の最初の要素の値が最大です。配列[1, 2, 3]の要素は[1, 2, 3, 1]の最初の 3 つの要素と同じですが、長さが短くなっています。

ブール値false < true
バイトバイトオーダー最大 1,048,487 バイト (1 MiB - 89 バイト)。クエリでは、最初の 1,500 バイトのみが考慮されます。
日時年代順Cloud Firestore に保存されている場合、精度はマイクロ秒までです。それ以上の精度は切り捨てられます。
浮動小数点数数値64 ビット倍精度、IEEE 754。
地理的ポイント緯度の次に経度現時点では、クエリの制限により、このデータ型を使用することはお勧めしません。一般に、緯度と経度を別々の数値フィールドとして保存することをお勧めします。アプリで単純な距離ベースの地理クエリが必要な場合は、地理クエリを参照してください。
整数数値64 ビット、署名済み
地図キーで、次に値で

ドキュメント内に埋め込まれたオブジェクトを表します。インデックスを作成すると、サブフィールドに対してクエリを実行できます。この値をインデックスから除外すると、すべてのサブフィールドもインデックスから除外されます。

キーの順序は常にソートされます。たとえば、 {c: "foo", a: "bar", b: "qux"}と書くと、マップはキーでソートされ、 {a: "bar", b: "qux", c: "foo"} .

マップ フィールドはキーで並べ替えられ、キーと値のペアで比較されます。最初にキーが比較され、次に値が比較されます。最初のキーと値のペアが等しい場合、次のキーと値のペアが比較されます。 2 つのマップが同じキーと値のペアで始まる場合、マップの長さが考慮されます。たとえば、次のマップは昇順です。

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

ヌルなし
参照パス要素別 (コレクション、ドキュメント ID、コレクション、ドキュメント ID...)たとえば、 projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]です。
テキスト文字列UTF-8 でエンコードされたバイト順最大 1,048,487 バイト (1 MiB - 89 バイト)。クエリでは、UTF-8 表現の最初の 1,500 バイトのみが考慮されます。

値の型順

クエリに混合型の値を持つフィールドが含まれる場合、Cloud Firestore は内部表現に基づく決定論的な順序付けを使用します。次のリストは順序を示しています。

  1. ヌル値
  2. ブール値
  3. 数値順にソートされた整数値と浮動小数点値
  4. 日付値
  5. テキスト文字列値
  6. バイト値
  7. Cloud Firestore のリファレンス
  8. 地理的ポイント値
  9. 配列値
  10. マップ値