FirestoreエミュレーターをWindows10で起動させる
Firebase CLI のダウンロードとインストール
npm(Node Package Manager)を使用して、Firebase CLI をインストールします。
まずは、Node.js をインストールします。
コマンドプロンプトを起動し、次のコマンドで Firebase CLI をインストールします。
npm install -g firebase-tools
これにより、グローバルに使用できる firebase コマンドが有効になります。
firebase --version
Firebase CLI にログイン
Google アカウントを使用して Firebase にログインし、正しくインストールされているかを確認します。
firebase login
firebase list
Firebase の初期化
Firebase用のディレクトリを作成し、Firebaseの初期化を行います。
mkdir firebase-emu
cd firebase-emu
firebase init
上下矢印キーでカーソル(>)を移動し、"Emulators: Set up local emulators for Firebase features" をスペースキーで選択します。
デプロイする予定はないので、"Don't set up a default project"を選択します。
"Database" を選択します。
ポート番号は、デフォルトの9000のままとします。
最後に、"Y"で、エミュレーターのダウンロードを実行します。
Firestore エミュレーターのセットアップ
初期化後、Firestoreのエミュレーターをセットアップします。
firebase setup:emulators:firestore
Open JDK のインストール
Firestoreのエミュレーターを実行するには、Javaが必要ですので、jdk.java.netからzipファイルをダウンロードし、Cドライブ等に展開します。
展開後、binディレクトリをシステム環境変数のPathに追加します。
Firestoreエミュレーターの起動
新たにコマンドプロンプトを起動し、初期化したディレクトリへ移動します。
次のコマンドで、Firestoreエミュレーターを起動します。
cd C:\temp\firebase-emu
firebase serve --only firestore
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
Google Cloud Firestore API クライアントライブラリのインストール
Google Cloud Firestore API クライアントライブラリを次のコマンドでインストールします。
pip install google-cloud-firestore
#Firestoreエミュレーターで永続化する
サービスアカウントの作成
- GCP Console で サービス アカウントキーの作成 ページに移動します。
- 新しいプロジェクトを作成します(firebase-emu)。
- [サービス アカウント] リストから [新しいサービス アカウント] を選択します。
- [サービス アカウント名] フィールドに名前を入力します。
- [役割] リストで、[プロジェクト] > [オーナー] を選択します。
- [作成] をクリックします。キーが含まれている JSON ファイルがパソコンにダウンロードされます。
- JSONファイルを c:\temp\firebase-emu\client_credentials.json として保存します。
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インタプリターにコピー&ペーストして実行してください。
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 プロジェクトを削除してプロジェクト内のすべてのリソースへの課金を停止します。
- GCP Console で [プロジェクト] ページに移動します。→プロジェクト ページに移動
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
#まとめ
- Node.js と Firebase CLI をインストールし、Firestoreエミュレーターをセットアップしました。
- OpenJDKをインストールし、Firestoreエミュレーターを起動しました。
- Python2とPython3をインストールし、仮想環境(virtualenv)を設定しました。
- 仮想環境を有効化し、Google Cloud Firestore API クライアントライブラリをインストールしました。
- GCPにプロジェクトを作成し、サービスアカウントキーを作成、ダウンロードしました。
- Pythonインタープリター上で、Firestoreエミュレーターへ永続化しました。
- 課金されないように作成したGCPプロジェクトを削除しました。