データベースを管理する

このページでは、Cloud Firestore データベースを作成、更新、削除する方法について説明します。プロジェクトごとに複数の Cloud Firestore データベースを作成できます。複数のデータベースを使用して、本番環境とテスト環境の設定、顧客データの分離、データのリージョン指定を行うことができます。

(default) データベース

アプリで複数のデータベースが必要ない場合は、(default) データベースを使用します。

データベースを指定しない場合、Cloud Firestore クライアント ライブラリと Google Cloud CLI はデフォルトで (default) データベースに接続されます。

無料の割り当ては、(default) データベースでのみ使用できます。

必要なロール

データベースを作成して管理するには、Owner または Datastore Owner の Identity and Access Management ロールが必要です。これらのロールにより必要な権限が付与されます。

必要な権限

データベースを管理するには、次の権限が必要です。

  • データベースを作成する: datastore.databases.create
  • データベース構成を読み取る: datastore.databases.getMetadata
  • データベースを構成する: datastore.databases.update
  • データベースを削除する: datastore.databases.delete

データベースの作成

データベースを作成するには、次のいずれかの方法を使用します。

コンソール
  1. Google Cloud Platform コンソールで、[データベース] ページに移動します。

    [データベース] に移動

  2. [データベースを作成] をクリックします。
  3. データベース モードを選択します。[続行] をクリックする
  4. データベースを構成します。データベース ID を入力します。ロケーションを選択します。[データベースを作成] をクリックします。
gcloud

gcloud alpha firestore databases create コマンドを使用します。

gcloud alpha firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

次のように置き換えます。

--delete-protection は、削除からの保護を有効にするためのオプションのフラグです。この設定を無効にするまで、削除からの保護が有効になっているデータベースを削除することはできません。この設定はデフォルトで無効になっています。

Firebase CLI
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

次のように置き換えます。

--delete-protection は、削除からの保護を有効にするためのオプションの引数です。この設定を無効にするまで、削除からの保護が有効になっているデータベースを削除することはできません。この設定はデフォルトで無効になっています。

Terraform
resource "google_firestore_database" "database" {
  project     = "project-id"
  name        = DATABASE_ID
  location_id = LOCATION
  type        = DATABASE_TYPE

  // Optional
  delete_protection_state = DELETE_PROTECTION_STATE
}

以下を置き換えます。

delete_protection_state は、削除からの保護を有効にするためのオプションの引数です。この設定を無効にするまで、削除からの保護が有効になっているデータベースを削除することはできません。この設定はデフォルトで無効になっています。

データベース ID

有効なデータベース ID には、(default) と、次の要件に準拠する ID が含まれます。

  • 使用できるのは英字、数字、ハイフン(-)のみです。
  • 最初の文字は英字でなければなりません。
  • 最後の文字は英字または数字にしてください
  • 4 文字以上
  • 63 文字以内。

データベースを削除すると、5 分経過するまではデータベース ID を再利用することはできません。

削除保護

削除保護を使用すると、データベースの誤削除を防ぐことができます。削除保護を無効にするまで、削除保護が有効になっているデータベースを削除することはできません。削除保護はデフォルトで無効になっています。削除保護は、データベースの作成時に有効にすることも、データベース構成を更新して削除保護を有効にすることもできます。

データベースに Cloud Firestore セキュリティ ルールを設定する

Firebase CLI を使用して、Cloud Firestore セキュリティ ルールを各データベースにデプロイします。詳しくは、Cloud Firestore セキュリティ ルールの管理とデプロイに関するガイドをご覧ください。

クライアント ライブラリを使用して名前付きデータベースにアクセスする

名前付きデータベースには、(default) 以外のデータベースが含まれます。デフォルトでは、Firebase SDK と Google API クライアント ライブラリはプロジェクト内の (default) Cloud Firestore データベースに接続します。名前付きデータベースに接続されたクライアントを作成するには、クライアントをインスタンス化する際にデータベース ID を設定します。

データベースの一覧取得

データベースを一覧表示するには、次の方法のいずれかを使用します。

コンソール

Google Cloud Platform コンソールで、[データベース] ページに移動します。

[データベース] に移動

gcloud

gcloud firestore databases list コマンドを使用して、プロジェクト内のすべてのデータベースを一覧表示します。

gcloud firestore databases list

データベースの詳細を表示する

単一のデータベースの詳細を表示するには、gcloud firestore databases describe コマンドを使用します。

gcloud
gcloud firestore databases describe --database=DATABASE_ID

DATABASE_ID をデータベース ID に置き換えます。

データベース構成を更新する

データベースの構成設定を更新するには、gcloud alpha firestore databases update コマンドを使用します。削除保護を有効または無効にするには、このコマンドを使用して変更します。

削除保護の設定を更新する

データベースの削除保護を有効にするには、--delete-protection フラグを指定して gcloud alpha firestore databases update コマンドを使用します。次に例を示します。

gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection

DATABASE_ID をデータベース ID に置き換えます。

データベースの削除保護を無効にするには、--no-delete-protection フラグを指定して gcloud alpha firestore databases update コマンドを使用します。次に例を示します。

gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection

DATABASE_ID をデータベース ID に置き換えます。

データベースを削除する

データベースを削除するには、コンソールまたはコマンドライン ツールを使用します。

データベースで削除保護の設定が有効になっている場合は、まず削除保護を無効にする必要があります。

データベースに App Engine Search データまたは blob エンティティが含まれている場合は、まずそのデータを削除する必要があります。

データベースを削除しても、そのデータベースの Eventarc トリガーは自動的に削除されません。トリガーはイベントの配信を停止しますが、トリガーを削除するまで存在し続けます。

コンソール
  1. Google Cloud Platform コンソールで、[データベース] ページに移動します。

    [データベース] に移動

  2. 削除するデータベースのテーブル行にある [さらに表示] をクリックします。[削除] をクリックします。ダイアログが表示されます。
  3. [データベースを削除しますか?] ダイアログのテキスト フィールドにデータベース ID を入力して、削除を確定します。[削除] をクリックします。オペレーションの成功または失敗がコンソールに表示されます。

    オペレーションが失敗した場合は、データベースの詳細を表示し、削除保護が無効になっていることを確認します。削除保護を無効にするには、削除保護の設定を更新するをご覧ください。

gcloud

「gcloud alpha firestore databases delete」コマンドを使用します。

gcloud alpha firestore databases delete --database=DATABASE_ID

DATABASE_ID は、削除するデータベース ID に置き換えます。

データベースごとのアクセス権限を構成する

Identity and Access Management の条件を使用して、データベースごとにアクセス権限を構成できます。次の例では、Google Cloud CLI を使用して 1 つ以上のデータベースに条件付きアクセスを割り当てます。Google Cloud コンソールで IAM の条件を定義することもできます。

既存の IAM ポリシーを表示する

gcloud projects get-iam-policy PROJECT_ID

プロジェクト ID に PROJECT_ID を設定します。

データベースへのアクセス権を付与する

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

以下のとおりに設定します。

  • PROJECT_ID: プロジェクト ID
  • EMAIL: 特定の Google アカウントを表すメールアドレス。例: alice@example.com
  • DATABASE_ID: データベース ID。
  • TITLE: 式のタイトル(省略可)。
  • DESCRIPTION: 式の説明(省略可)。

1 つを除くすべてのデータベースにアクセス権を付与する

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

以下のとおりに設定します。

  • PROJECT_ID: プロジェクト ID
  • EMAIL: 特定の Google アカウントを表すメールアドレス。例: alice@example.com
  • DATABASE_ID: データベース ID。
  • TITLE: 式のタイトル(省略可)。
  • DESCRIPTION: 式の説明(省略可)。

特定のメンバーとロールのポリシーを削除する

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

以下のとおりに設定します。

  • PROJECT_ID: プロジェクト ID
  • EMAIL: 特定の Google アカウントを表すメールアドレス。例: alice@example.com

Cloud Monitoring

Firestore の指標は、2 つのモニタリング対象リソースで報告されます。

集計指標は、firestore.googleapis.com/Database を確認するとデータベース レベルで調べることができます。firestore_instance で報告される指標は、プロジェクト レベルで集計されます。

制限事項

次のステップ