このページでは、Datastore モードの Firestore API を使用して、単純なコマンドライン アプリケーション TaskList を作成する短い演習を行います。TaskList はタスクを保管、リスト、更新、削除するアプリケーションです。
前提事項
- このトピックで使用するプログラミング言語でコマンドライン アプリケーションを作成して実行する能力
アプリケーション開発手法に関する基本的な理解に加え、チュートリアルを始める前に、追加ライブラリのダウンロードとインストールが行えること。 - Datastore モード API が有効になっている Google Cloud Console プロジェクト
Datastore モードを使用するアプリケーションは、Datastore モード API が有効になっている Google Cloud Console プロジェクトに関連付けられている必要があります。このプロジェクトはアプリケーションで使用する認証情報を提供します。この認証情報は、Google に対してアプリケーションを識別し、Datastore モード API の使用承認を得るために使用します。
次の手順に従ってプロジェクトを作成します。そして、そのプロジェクトの Datastore モード API を有効にし、gcloud auth login
コマンドで認証情報を指定してローカル開発環境を設定します。プロジェクトの ID は後で使用するので、メモを取っておきます。 - アクティブな App Engine アプリケーション
Datastore モード API を使用するプロジェクトには、アクティブな App Engine アプリケーションが必要となります。App Engine ダッシュボードを開き、プロジェクトにアクティブな App Engine アプリがあることを確認します。
必要に応じて App Engine アプリを作成します。このアプリは無効にしないでください。
インストールとセットアップ
クライアント ライブラリをインストールし、使用する開発環境に応じた追加設定を行います。
C#
- Visual Studio(バージョン 2013 以上)がインストールされていることを確認します。
- TaskList サンプル アプリケーションをここからダウンロードします。
- Documents フォルダに zip のファイルを抽出します。
- Visual Studio でファイル
dotnet-docs-samples-master\datastore\api\Datastore.sln
を開きます。 - Visual Studio の [ソリューション エクスプローラー] ウィンドウで TaskList プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] を選択します。
- TaskList プロジェクトをもう一度右クリックして、[プロパティ] を選択します。
[プロパティ] ウィンドウで [デバッグ] をクリックし、Google Cloud Platform プロジェクトの ID を [コマンドライン引数] ボックスに入力します。
[ファイル] をクリックして [保存] をクリックし、変更を保存します。
アプリケーションを実行します。キーボードの F5 キーを押します。
Go
TaskList サンプル アプリケーションのクローンを作成します。
go get github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
サンプルをクローンのディレクトリに移動します。
cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/datastore/tasks
コマンド プロンプトで次のコマンドを実行します。次の場合、
<project-id>
は、Google Cloud Platform プロジェクトの ID です。export DATASTORE_PROJECT_ID=<project-id>
(Windows ユーザーの場合、
export
の代わりにset
を使用します。)アプリケーションを実行します。
go run tasks.go
Java
TaskList サンプル アプリケーションをここからダウンロードします。
コマンド プロンプトで、次のようにダウンロード ファイルを解凍します。
unzip master.zip
TaskList アプリケーションがあるディレクトリに移動します。
cd java-docs-samples-master/datastore
以下を実行します。
<project-id>
は、Google Cloud Platform プロジェクトの ID です。gcloud config set project <project-id>
アプリケーションをコンパイルし、実行します。
mvn clean compile mvn exec:java
Node.js
TaskList サンプル アプリケーションをここからダウンロードします。
ダウンロード ファイルを解凍します。
unzip master.zip
TaskList アプリケーションがあるディレクトリに移動します。
cd nodejs-datastore-master/samples
依存関係をインストールし、アプリケーションをリンクします。
npm install
コマンド プロンプトで次のコマンドを実行します。次の場合、
<project-id>
は、Google Cloud Platform プロジェクトの ID です。export GCLOUD_PROJECT=<project-id>
(Windows ユーザーの場合、
export
の代わりにset
を使用します。)アプリケーションを実行します。
node tasks.js
PHP
- PHP(バージョン 5.6 以降)と Composer がインストールされていることを確認します。
- TaskList サンプル アプリケーションをここからダウンロードします。
ダウンロード ファイルを解凍します。
unzip master.zip
TaskList アプリケーションがあるディレクトリに移動します。
cd php-docs-samples-master/datastore/tutorial
依存関係をインストールします。
Composer がローカルにインストールされている場合:
php composer.phar install
Composer がグローバルにインストールされている場合:
composer install
アプリケーションを実行します。
php tasks.php
Python
- Python(バージョン 2.7.9 以降)、pip、virtualenv がインストールされていることを確認します。
virtualenv
セッションをアクティベートします。virtualenv venv source venv/bin/activate
TaskList サンプル アプリケーションをここからダウンロードします。
ダウンロード ファイルを解凍します。
unzip master.zip
TaskList アプリケーションがあるディレクトリに移動します。
cd python-docs-samples-master/datastore/cloud-client
依存関係をインストールします。
pip install -r requirements.txt
アプリケーションを実行します。
<project-id>
には、Google Cloud Platform プロジェクトの ID を使用します。python tasks.py --project-id <project-id>
Ruby
TaskList サンプル アプリケーションをここからダウンロードします。
ダウンロード ファイルを解凍します。
unzip master.zip
TaskList アプリケーションがあるディレクトリに移動します。
cd google-cloud-ruby-master/google-cloud-datastore/samples
依存関係をインストールします。
bundle install
コマンド プロンプトで次のコマンドを実行します。次の場合、
<project-id>
は、Google Cloud Platform プロジェクトの ID です。export GOOGLE_CLOUD_PROJECT=<project-id>
(Windows ユーザーの場合、
export
の代わりにset
を使用します。)アプリケーションを実行します。
bundle exec ruby tasks.rb
承認済みサービス オブジェクトの作成
Google API のクライアント ライブラリを使用して、認証済みリクエストを Google Cloud API に送るには、以下の手順を行う必要があります。
- リクエストに使用する認証情報を取得します。
- この認証情報を使用するサービス オブジェクトを作成します。
これで Datastore モードのサービス オブジェクトに対してメソッドを実行し、API 呼び出しを実行できるようになります。
この例では、開発環境からアプリケーションのデフォルトの認証情報を取得して、この情報を引数として渡し、サービス オブジェクトを作成します。
承認済み Datastore モードのサービス オブジェクトを作成するための呼び出しを次に示します。
C#
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore C# API のリファレンス ドキュメントをご覧ください。
Go
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Go API のリファレンス ドキュメントをご覧ください。
Java
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Java API のリファレンス ドキュメントをご覧ください。
Node.js
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Node.js API のリファレンス ドキュメントをご覧ください。
PHP
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore PHP API のリファレンス ドキュメントをご覧ください。
Python
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Python API のリファレンス ドキュメントをご覧ください。
Ruby
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Ruby API のリファレンス ドキュメントをご覧ください。
データの保存
Datastore モード内のオブジェクトはエンティティと呼ばれ、個々のエンティティには特定の種類があります。TaskList アプリケーションは、以下のプロパティを持つ Task
という種類のエンティティを保存します。
description
: タスクの説明としてユーザーが指定した文字列created
: タスクが最初に作成された日付done
: タスクが完了したかどうかを示すブール値
ユーザーが新規タスクを追加すると、TaskList アプリケーションは上記の各プロパティの値を設定した Task
エンティティを作成します。
C#
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore C# API のリファレンス ドキュメントをご覧ください。
Go
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Go API のリファレンス ドキュメントをご覧ください。
Java
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Java API のリファレンス ドキュメントをご覧ください。
Node.js
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Node.js API のリファレンス ドキュメントをご覧ください。
PHP
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore PHP API のリファレンス ドキュメントをご覧ください。
Python
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Python API のリファレンス ドキュメントをご覧ください。
Ruby
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Ruby API のリファレンス ドキュメントをご覧ください。
このアプリケーションには、タスクの完了を示すために、done
プロパティを更新するメソッドも提供します。
C#
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore C# API のリファレンス ドキュメントをご覧ください。
Go
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Go API のリファレンス ドキュメントをご覧ください。
Java
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Java API のリファレンス ドキュメントをご覧ください。
Node.js
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Node.js API のリファレンス ドキュメントをご覧ください。
PHP
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore PHP API のリファレンス ドキュメントをご覧ください。
Python
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Python API のリファレンス ドキュメントをご覧ください。
Ruby
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Ruby API のリファレンス ドキュメントをご覧ください。
次に、Task
エンティティのキーを使用して、Task
エンティティを削除する方法を示します。
C#
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore C# API のリファレンス ドキュメントをご覧ください。
Go
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Go API のリファレンス ドキュメントをご覧ください。
Java
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Java API のリファレンス ドキュメントをご覧ください。
Node.js
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Node.js API のリファレンス ドキュメントをご覧ください。
PHP
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore PHP API のリファレンス ドキュメントをご覧ください。
Python
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Python API のリファレンス ドキュメントをご覧ください。
Ruby
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Ruby API のリファレンス ドキュメントをご覧ください。
クエリの実行
キーを使用して Datastore モードから直接エンティティを取得する方法に加え、アプリケーションはクエリを実行し、エンティティのプロパティ値によって該当エンティティを取得できます。一般的に、クエリは次のような要素で構成されます。
- クエリが適用されるエンティティの種類
- 任意の数のフィルタ(指定しなくともよい)。ある値に一致するプロパティを持つ種類を選択するフィルタなど
- 結果を順序付けするための、任意の数の並べ替え順(指定しなくともよい)
このアプリケーションでは、Datastore モードに対して Task
エンティティを返すクエリを実行し、結果を作成時間で並べ替えます。
C#
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore C# API のリファレンス ドキュメントをご覧ください。
Go
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Go API のリファレンス ドキュメントをご覧ください。
Java
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Java API のリファレンス ドキュメントをご覧ください。
Node.js
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Node.js API のリファレンス ドキュメントをご覧ください。
PHP
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore PHP API のリファレンス ドキュメントをご覧ください。
Python
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Python API のリファレンス ドキュメントをご覧ください。
Ruby
Cloud Datastore 用のクライアント ライブラリをインストールして使用する方法については、Cloud Datastore のクライアント ライブラリをご覧ください。詳細については、Cloud Datastore Ruby API のリファレンス ドキュメントをご覧ください。
次のステップ
このチュートリアルでは、コマンドライン アプリケーションから Datastore モード API への呼び出しを行うために必要となる、最も基本的なステップのみについて説明しています。Datastore モードは高速でスケーラブルな ACID トランザクション、SQL に似たクエリ、インデックス、その他さまざまな機能をサポートしています。
- Datastore モードの各機能の詳細については、Datastore モードの Firestore とはをご覧ください。
- アプリケーション開発における Datastore モード エミュレータの使用方法については、Datastore モード エミュレータをご覧ください。