[ GCP / Firebase ] GCP からも Firebase からも利用可能な Firestore データベース の 作成方法

Google が提供する NoSQL クラウド データベース である Firestore をWeb アプリや モバイルアプリで利用可能な状態の 作成方法 を紹介します。Firestore は GCP プロジェクトとして利用する方法、 Firebase プロジェクトとして利用する方法がありますが、今回は GCP / Firebase 両方のプロジェクトでデータを共有するようなデータベースの 作成方法 を紹介していきます。

Cloud Firestore は、Firebase と Google Cloud からのモバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなデータベースです。


https://firebase.google.com/docs/firestore

Firestore は 以下のような 作成方法 があります。

  1. Firebase プロジェクトとして作成し、 Firebase で利用する方法
  2. GCP プロジェクトとして作成し、 GCP で利用する方法
  3. GCP プロジェクトとして作成し、 GCP, Firebase 双方で利用する方法

Firebase で利用することで、モバイルアプリとの連携が容易になり、 GCP で利用することで、 機械学習などの各種 Google Cloud プロダクトとの統合が可能になります。

今回は、その両方を可能にする3番目の 作成方法 を紹介します。

関連記事:

作業の流れ

作業の流れは大まかに以下の 2 ステップになります。

  1. GCP 側作業:接続先となる Firestore データベースの作成
  2. Firebase 側作業:GCP プロジェクトとの紐付け

GCP で Firestore データベースを作成

最初に、接続先となる Firestore を作成していきます。以下の URL をクリックして、 Cloud Console を開きます。

https://console.cloud.google.com/firestore/

今回は “sample-for-blog” という名称の GCP プロジェクトを用いて進めていきます。

Firestore の作成 ( モード選択 )

Firestore を作成するにあたって、モードを選択する必要があります。

注意書きがあるように、ここでの選択は後で変更できないため、注意深く選択することが重要です。

ざっくりいってしまうと、モバイルアプリからのアクセスをする可能性がある場合は「ネイティブモード」を選択する、という感じでしょうか。逆に、App Engine で Python 2.7 や PHP 5.5 といった 少し古い環境 で用いる場合は「 Datastore モード」を選択する必要がありそうです。

参考:公式ドキュメント「ネイティブ モードと Datastore モードからの選択 –  機能の比較

ここでは「 ネイティブモード 」を選択して進めていきます。

Firestore の作成 ( ロケーション選択 )

モードの選択の次は、データ保存先の選択になります。ここでは asia-northeast1 (Tokyo) を選択して進めていきます。

「 データベースを作成 」をクリックするとデータベースの作成が開始されます。1〜2分ほど経つと、データが存在しない、いわゆる箱だけのデータベースが作成されます。

次に Firebase 側の作業に移ります。

Firebase 側作業

以下の URL にアクセスして、 Firebase コンソールを開きます。

https://console.firebase.google.com/

プロジェクト作成

「 プロジェクトを追加 」をクリックして、プロジェクトを追加( 作成 )していきます。

プロジェクトの名称をつける画面が表示されますが、「 プロジェクト名 」プルダウンに既存の GCP プロジェクト名が表示されますので、紐付けたいプロジェクト名(ここでは “sample for blog” )を選択し、「 続行 」をクリックします。

料金プランを確認する画面が表示されますので、「 プランを確認 」をクリックします。

注意点が表示されますので、問題ない場合は「 続行 」をクリックします。

Google アナリティクス を有効にするか聞かれますので、必要に応じて選択してください。ここでは「 有効にする 」状態で進めていきます。

Google アナリティクス アカウントを選択または作成したら「 Firebase を追加 」をクリックして、プロジェクトを作成します。

1分も経たないうちに作成が完了します。

左のメニューから Cloud Firestore を選択し、 Firestore を表示してみます。

Firebase 側ではプロジェクトを作成したのみですが、 GCP 側で作成済みの Firestore が表示されています。

Firestore 動作確認

それでは、作成した Firestore の簡単な動作確認をしていきます。

Firebase プロジェクトを開いた状態ですので、 Firebase 側で Firestore にデータを追加してみて、それを GCP 側で確認してみます。

Firebase 側でデータ追加

「 + コレクションを開始 」をクリックして、データを作成していきます。

コレクションID は “test” として進めていきます。

ドキュメントID は自分で入力することも可能ですが、ここでは「 自動 ID 」をクリックして自動付与して進めていきます。

今回は、 string 型の値を1つだけもつデータを作成していきます。フィールドと値を入力し、「保存」をクリックします。

Firebase プロジェクト内の Firestore データベースにデータが追加されました。

GCP 側でデータ確認

それでは GCP 側で追加されたデータを確認してきます。以下の URL をクリックして GCP コンソールから Firestore を開きます。

https://console.cloud.google.com/firestore/data/

先程追加したデータが参照できています。

まとめ

  • Firestore には 2 つのモードがある
    • モバイルアプリ用途なら ネイティブモード
    • Python 2.7 等のレガシーコード向けには Datastore モード
  • モバイルアプリ、 GCP の各種 Cloud サービス両方からアクセスする場合、 GCP 側で Firestore を作成し、 Firebase プロジェクトと GCP プロジェクト を紐付ける

関連記事