Cloud Firestore REST API を使用する

Cloud Firestore を使用する場合、ネイティブのクライアント ライブラリを使用するのが最も簡単な方法ですが、REST API を直接呼び出すと便利な場合もあります。

REST API は、次のような場合に役立ちます。

  • 完全なクライアント ライブラリを実行できないモノのインターネット(IoT)端末など、リソースが制約された環境から Cloud Firestore にアクセスする場合。
  • データベース管理の自動化を行ったり、詳細なデータベース メタデータを取得したりする場合。

gRPC でサポートされている言語を使用している場合は、REST API ではなく RPC API の使用を検討してください。

認証と承認

認証では、Cloud Firestore REST API は Firebase Authentication ID トークンまたは Google Identity OAuth 2.0 トークンのいずれかを受け取ります。提供するトークンはリクエストの承認に影響を与えます。

  • アプリケーションのユーザーからのリクエストを認証するには、Firebase ID トークンを使用します。それらのリクエストに対して、Cloud Firestore は Cloud Firestore セキュリティ ルールを使用して、リクエストを承認するかどうかを判断します。

  • アプリケーションからのリクエスト(データベース管理のリクエストなど)を認証するには、Google Identity OAuth 2.0 トークンとサービス アカウントを使用します。それらのリクエストに対して、Cloud Firestore は Cloud Identity and Access Management(IAM)を使用して、リクエストを承認するかどうかを判断します。

Firebase ID トークンに関する処理

Firebase ID トークンは次の 2 つの方法で取得できます。

ユーザーの Firebase ID トークンを取得することで、ユーザーに代わってリクエストを行うことができます。

Firebase ID トークンで認証されたリクエストと、未認証のリクエストに対して、Cloud Firestore は Cloud Firestore セキュリティ ルールを使用して、リクエストを承認するかどうかを判断します。

Google Identity OAuth 2.0 トークンに関する処理

Google API クライアント ライブラリサービス アカウントを使用するか、サーバー間アプリケーションでの OAuth 2.0 の使用で説明されている手順に沿って操作して、アクセス トークンを生成できます。また、gcloud コマンドライン ツールとコマンド gcloud auth application-default print-access-token を使用してトークンを生成することもできます。

Cloud Firestore REST API にリクエストを送信するには、このトークンに次のスコープが必要です。

  • https://www.googleapis.com/auth/datastore

サービス アカウントと Google Identity OAuth 2.0 トークンを使用してリクエストを認証する場合、Cloud Firestore は、個々のユーザーの代理ではなくアプリケーションの代理としてリクエストが行われていると想定します。Cloud Firestore では、これらのリクエストでセキュリティ ルールを無視できます。代わりに、Cloud Firestore は Cloud Identity and Access Management(IAM)を使用して、リクエストを承認するかどうかを判断します。

Cloud Firestore IAM の役割を割り当てることによって、サービス アカウントのアクセス権限を制御できます。

アクセス トークンによる認証

Firebase ID トークンまたは Google Identity OAuth 2.0 トークンのいずれかを取得したら、それを Authorization ヘッダーで Bearer {YOUR_TOKEN} のように設定して Cloud Firestore エンドポイントに渡します。

REST 呼び出しの実行

すべての REST API エンドポイントは、ベース URL https://firestore.googleapis.com/v1beta1/ の下にあります。

プロジェクト YOUR_PROJECT_ID のコレクション cities 内の ID が LA のドキュメントのパスを作成するには、次の構造を使用します。

/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA

このパスを操作するには、ベース API URL にこのパスを結合します。

https://firestore.googleapis.com/v1beta1/projects/YOUR_PROJECT_ID/databases/(default)/documents/cities/LA

REST API に慣れていない場合は、API Explorer が便利です。API Explorer では Google Identity OAuth 2.0 トークンが自動的に生成され、API を検査できます。

メソッド

以下に、最も重要な 2 つのメソッド グループについて簡単に説明します。詳細を確認するには、REST API リファレンスを参照するか、API Explorer を使用してください。

v1beta1.projects.databases.documents

ドキュメントに CRUD オペレーションを実行します。この処理は、データを追加するまたはデータを取得するで説明した処理に類似しています。

v1beta1.projects.databases.indexes

新しいインデックスの作成、既存のインデックスの無効化、現在のインデックスの一覧表示など、インデックスに対するアクションを実行します。データ構造を自動的に移行したり、プロジェクト間でインデックスを同期したりする場合に便利です。

また、特定のドキュメントのすべてのフィールドとサブコレクションのリストなど、ドキュメント メタデータの取得も可能です。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。