3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Firebase CLI を Windows10 にインストールして、FirestoreエミュレーターをPython3で試してみる

Posted at

FirestoreエミュレーターをWindows10で起動させる

Firebase CLI のダウンロードとインストール

npm(Node Package Manager)を使用して、Firebase CLI をインストールします。

まずは、Node.js をインストールします。

コマンドプロンプトを起動し、次のコマンドで Firebase CLI をインストールします。

コマンドプロンプト.
npm install -g firebase-tools

image.png

これにより、グローバルに使用できる firebase コマンドが有効になります。

コマンドプロンプト.
firebase --version

Firebase CLI にログイン

Google アカウントを使用して Firebase にログインし、正しくインストールされているかを確認します。

コマンドプロンプト.
firebase login
firebase list

image.png

Firebase の初期化

Firebase用のディレクトリを作成し、Firebaseの初期化を行います。

コマンドプロンプト.
mkdir firebase-emu
cd firebase-emu
firebase init

image.png

image.png

上下矢印キーでカーソル(>)を移動し、"Emulators: Set up local emulators for Firebase features" をスペースキーで選択します。

image.png

デプロイする予定はないので、"Don't set up a default project"を選択します。

image.png

"Database" を選択します。

image.png

ポート番号は、デフォルトの9000のままとします。

image.png

最後に、"Y"で、エミュレーターのダウンロードを実行します。

Firestore エミュレーターのセットアップ

初期化後、Firestoreのエミュレーターをセットアップします。

コマンドプロンプト.
firebase setup:emulators:firestore

image.png

Open JDK のインストール

Firestoreのエミュレーターを実行するには、Javaが必要ですので、jdk.java.netからzipファイルをダウンロードし、Cドライブ等に展開します。

展開後、binディレクトリをシステム環境変数のPathに追加します。
image.png

Firestoreエミュレーターの起動

新たにコマンドプロンプトを起動し、初期化したディレクトリへ移動します。
次のコマンドで、Firestoreエミュレーターを起動します。

コマンドプロンプト.
cd C:\temp\firebase-emu
firebase serve --only firestore

image.png

Python3の仮想環境とライブラリのインストール

Python2/3のインストールと仮想環境の有効化

Python 2 と Python 3 のインストール

Python のウェブサイトから Python 2 と Python 3 両方の最新バージョンのWindowsインストーラをダウンロードし、インストールします**(2019/11/25現在 Python 3.7をインストールしてください)**。
※ インストール先は、C:\Python27やC:\Python37のように浅いフォルダにしています。

【Python2をインストールする理由】 GoogleのCloud SDK は Python で作成されています。アプリの開発に使用する Python のバージョンにかかわらず、Cloud SDK は Python 2.7.9 以降が必要になります。ただし、Python 3 virtualenv を使用している場合でも、Cloud SDK が Python 2 のインストールを検出し、使用できます。

###virtualenv のインストールと有効化
virtualenvをインストールします。

コマンドプロンプト.
py -3 -m pip install --upgrade virtualenv

次のコマンドで、virtualenvのバージョンを確認できます。

コマンドプロンプト.
py -3 -m virtualenv --version

virtualenv がインストールされたら、プロジェクト内に仮想環境を作成できます。次の virtualenv により、venv フォルダに Python のインストール全体の仮想コピーを作成します。
※ Python 3.7をC:\Python37にインストールしている場合、つぎのようにpython.exeのパスを指定します。

コマンドプロンプト.
cd C:\temp\firebase-emu
py -3 -m virtualenv --python "C:\Python37\python.exe" venv

コピーが作成されたら、次のように仮想環境を有効化して、Python の virtualenv のパスを コマンドプロンプト に通します。

コマンドプロンプト.
.\venv\Scripts\activate

image.png

Google Cloud Firestore API クライアントライブラリのインストール

Google Cloud Firestore API クライアントライブラリを次のコマンドでインストールします。

コマンドプロンプト.
pip install google-cloud-firestore

image.png

#Firestoreエミュレーターで永続化する

サービスアカウントの作成

  1. GCP Console で サービス アカウントキーの作成 ページに移動します。
  2. 新しいプロジェクトを作成します(firebase-emu)。
  3. [サービス アカウント] リストから [新しいサービス アカウント] を選択します。
  4. [サービス アカウント名] フィールドに名前を入力します。
  5. [役割] リストで、[プロジェクト] > [オーナー] を選択します。
  6. [作成] をクリックします。キーが含まれている JSON ファイルがパソコンにダウンロードされます。
  7. JSONファイルを c:\temp\firebase-emu\client_credentials.json として保存します。

image.png

Firestoreエミュレーターへの永続化

Pythonの仮想環境を有効化した状態で、FIRESTORE_EMULATOR_HOST環境変数とGOOGLE_APPLICATION_CREDENTIALS環境変数とを設定します。

コマンドプロンプト.
SET FIRESTORE_EMULATOR_HOST=localhost:8080
SET GOOGLE_APPLICATION_CREDENTIALS=C:\temp\firebase-emu\client_credentials.json

Pythonインタープリターを起動します。

コマンドプロンプト.
python

次のコードをPythonインタプリターにコピー&ペーストして実行してください。

example.py
from google.cloud import firestore

db = firestore.Client()

# Query for documents
users_ref = db.collection(u'users')
for doc in users_ref.stream():
    print(u'{} => {}'.format(doc.id, doc.to_dict()))

# Add a new document
doc_ref = db.collection(u'users').document(u'alovelace')
doc_ref.set({
    u'first': u'Ada',
    u'last': u'Lovelace',
    u'born': 1815
})

# Then query for documents
users_ref = db.collection(u'users')

for doc in users_ref.stream():
    print(u'{} => {}'.format(doc.id, doc.to_dict()))


quit()で、Pythonインタープリターを終了します。
その後、Pythonインタープリターを起動して、再度、example.pyのコードをコピー&ペーストして実行してみてください。

終了.
quit()

#クリーンアップ
課金されないようにするには、GCP プロジェクトを削除してプロジェクト内のすべてのリソースへの課金を停止します。

  1. GCP Console で [プロジェクト] ページに移動します。→プロジェクト ページに移動
  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

#まとめ

  • Node.js と Firebase CLI をインストールし、Firestoreエミュレーターをセットアップしました。
  • OpenJDKをインストールし、Firestoreエミュレーターを起動しました。
  • Python2とPython3をインストールし、仮想環境(virtualenv)を設定しました。
  • 仮想環境を有効化し、Google Cloud Firestore API クライアントライブラリをインストールしました。
  • GCPにプロジェクトを作成し、サービスアカウントキーを作成、ダウンロードしました。
  • Pythonインタープリター上で、Firestoreエミュレーターへ永続化しました。
  • 課金されないように作成したGCPプロジェクトを削除しました。
3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?